基于片上系統的串口發送方法和裝置的制造方法
【技術領域】
[0001] 本發明涉及串口領域,具體而言,涉及一種基于片上系統的串口發送方法和裝置。
【背景技術】
[0002] 在片上系統(Soc :System on chip)中,為了降低成本和功耗,一些不必要的模塊, 比如用于調試的串口通信模塊都被刪減掉;即使某些Soc也支持串口功能,但由于受波特 率定時器精度、晶體時鐘頻率等種種原因的限制也不支持較高波特率,這就增加了 Soc的 軟硬件的調試難度。
[0003] 現有技術通過C語言模擬串口以進行Soc的數據傳輸,發明人發現,由于編譯C語 言時會導致時序錯位,導致輸出數據不準確,影響對Soc的調試。
[0004] 針對現有技術中在調試Soc時輸出的數據不準確的問題,目前尚未提出有效的解 決方案。
【發明內容】
[0005] 本發明的主要目的在于提供一種基于片上系統的串口發送方法和裝置,以解決現 有技術中在調試SOC時輸出的數據不準確的問題。
[0006] 為了實現上述目的,根據本發明實施例的一個方面,提供了一種基于片上系統的 串口發送方法。根據本發明的基于片上系統的串口發送方法包括:獲取波特率和由匯編語 言編寫的延時子程序確定延時機器周期,其中,所述延時機器周期為發送一位數據的延時 時間;獲取通過由匯編語言編寫的模擬串口;按照所述延時機器周期和所述波特率通過所 述模擬串口傳輸所述片上系統的輸出數據,其中,所述模擬串口按照串口數據發送規則輸 出所述數據。
[0007] 進一步地,獲取波特率和由匯編語言編寫的延時子程序確定延時機器周期包括: 獲取調用所述延時子程序之前執行數據發送程序的執行時間;調用所述延時子程序,得到 延時時間;以及將所述執行時間和所述延時時間的總和作為所述延時機器周期。
[0008] 進一步地,按照所述延時機器周期和所述波特率通過所述模擬串口傳輸所述片上 系統的輸出數據包括:確定所述延時子程序所調用的第一寄存器和第二寄存器,其中,所述 第一寄存器作為計數器,所述第二寄存器作為參數傳遞寄存器;調用所述計數器來計算所 述延時機器周期;調用所述參數傳遞寄存器將所述片上系統的數據傳遞到所述模擬串口 中;以及按照所述第一寄存器計算的延時機器周期輸出由所述第二寄存器傳遞的數據。
[0009] 進一步地,確定所述延時子程序所調用的第一寄存器和第二寄存器包括:查找所 述片上系統的空閑寄存器;將查找到的空閑寄存器作為所述第一寄存器。
[0010] 進一步地,在按照所述延時機器周期和所述波特率通過所述模擬串口傳輸數據之 前,所述方法還包括:獲取由C語言編寫的接口;通過所述接口連接所述片上系統和所述模 擬串口。
[0011] 為了實現上述目的,根據本發明實施例的另一方面,提供了一種基于片上系統的 串口發送裝置。根據本發明的基于片上系統的串口發送裝置包括:第一獲取單元,用于獲取 波特率和由匯編語言編寫的延時子程序確定延時機器周期,其中,所述延時機器周期為發 送一位數據的延時時間;第二獲取單元,用于獲取通過由匯編語言編寫的模擬串口;輸出 單元,用于按照所述延時機器周期和所述波特率通過所述模擬串口傳輸所述片上系統的輸 出數據,其中,所述模擬串口按照串口數據發送規則輸出所述數據。
[0012] 進一步地,所述第一獲取單元包括:獲取模塊,用于獲取調用所述延時子程序之前 執行數據發送程序的執行時間;第一調用模塊,用于調用所述延時子程序,得到延時時間; 以及第一確定模塊,用于將所述執行時間和所述延時時間的總和作為延時機器周期。
[0013] 進一步地,所述輸出單元包括:第二確定模塊,用于確定所述延時子程序所調用的 第一寄存器和第二寄存器,其中,所述第一寄存器作為計數器,所述第二寄存器作為參數傳 遞寄存器;第二調用模塊,用于調用所述計數器來計算所述延時機器周期;第三調用模塊, 用于調用所述參數傳遞寄存器將所述片上系統的數據傳遞到所述模擬串口中;以及輸出模 塊,用于按照所述第一寄存器計算的延時機器周期輸出由所述第二寄存器傳遞的數據。
[0014] 進一步地,所述第二確定模塊包括:查找子模塊,用于查找所述片上系統的空閑寄 存器;確定子模塊,用于將查找到的空閑寄存器作為所述第一寄存器。
[0015] 進一步地,所述裝置還包括:第三獲取單元,用于在按照所述延時機器周期和所述 波特率通過所述模擬串口傳輸數據之前,獲取由C語言編寫的接口;連接單元,用于通過所 述接口連接所述片上系統和所述模擬串口。
[0016] 根據本發明實施例,利用匯編語言編寫延時子程序來完成延時,由于匯編語言執 行匯編指令的執行時間固定的特性,使得通過模擬串口輸出數據的時序不會出現錯位,避 免了現有技術在輸出片上系統的數據時導致時序出錯的情況發生,從而解決了現有技術中 在調試Soc時輸出的數據不準確的問題,進而達到了準確輸出數據的效果。
【附圖說明】
[0017] 構成本申請的一部分的附圖用來提供對本發明的進一步理解,本發明的示意性實 施例及其說明用于解釋本發明,并不構成對本發明的不當限定。在附圖中:
[0018] 圖1是根據本發明實施例的基于片上系統的串口發送方法的流程圖;以及
[0019] 圖2是根據本發明實施例的基于片上系統的串口發送裝置的示意圖。
【具體實施方式】
[0020] 需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相 互組合。下面將參考附圖并結合實施例來詳細說明本發明。
[0021 ] 為了使本技術領域的人員更好地理解本發明方案,下面將結合本發明實施例中的 附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是 本發明一部分的實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術 人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都應當屬于本發明保護的范 圍。
[0022] 需要說明的是,本發明的說明書和權利要求書及上述附圖中的術語"第一"、"第 二"等是用于區別類似的對象,而不必用于描述特定的順序或先后次序。應該理解這樣使 用的數據在適當情況下可以互換,以便這里描述的本發明的實施例。此外,術語"包括"和 "具有"以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元 的過程、方法、系統、產品或設備不必限于清楚地列出的那些步驟或單元,而是可包括沒有 清楚地列出的或對于這些過程、方法、產品或設備固有的其它步驟或單元。
[0023] 波特率:調制速率,指信號被調制以后在單位時間內的變化,即單位時間內載波參 數變化的此時,1波特即指每秒傳輸1個符號。波特率等于每秒鐘傳輸的數據位數。
[0024] 本發明實施例提供了一種基于片上系統的串口發送方法。可選地,該基于片上系 統的串口發送方法中,利用匯編語言編寫模擬串口,由于匯編語言執行匯編指令的執行時 間固定的特性,使得通過模擬串口輸出數據的時序不會出現錯位,避免了現有技術在輸出 片上系統的數據時導致時序出錯的情況發生,從而解決了現有技術中在調試Soc時輸出的 數據不準確的問題,進而達到了準確輸出數據的效果。另外,通過模擬串口輸出的數據通常 是為了調試片上系統,準確的輸出片上系統的數據有助于提高對片上系統的調試效率,降 低了調試難度,同時,利用模擬串口輸出數據減少了片上系統的硬件,降低了片上系統的成 本和功耗。
[0025] 圖1是根據本發明實施例的基于片上系統的串口發送方法的流程圖。如圖1所示, 該基于片上系統的串口發送