專(zhuān)利名稱(chēng)::在dsp上利用同步串口輸出異步串口調(diào)試信息的方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及數(shù)字信號(hào)處理器應(yīng)用領(lǐng)域內(nèi)在DSP上利用同步串口輸出異步串口調(diào)試信息的方法,更具體地涉及一種在TI公司生產(chǎn)的DSP上利用同步串口McBsp(MultichannelBufferedSerialPort多通道緩沖串行接口)來(lái)構(gòu)建異步串口UART(UniversalAsynchronousReceiver/Transmitter通用異步收發(fā)串口),并用其輸出調(diào)試信息的方法。
背景技術(shù):
:在DSP(DigitalSingnalProcessor數(shù)字信號(hào)處理器)芯片的開(kāi)發(fā)過(guò)程中,其調(diào)試信息的輸出一直是一個(gè)令人重點(diǎn)關(guān)注的問(wèn)題,特別是在復(fù)現(xiàn)和定位問(wèn)題的時(shí)候尤其重要。在DSP開(kāi)發(fā)的早期可以用仿真器通過(guò)jtag口輸出調(diào)試信息,到了產(chǎn)品化階段對(duì)于Host-Slave—-主從機(jī)模式DSP的調(diào)試信息可以通過(guò)主機(jī)接口由主機(jī)輸出,而對(duì)于Standalone——單^4莫式一:l殳采用日志保存的方式,也就是把調(diào)試信息保存在FLASH中。這兩種方式存在著明顯的缺點(diǎn)前者受限于主機(jī)接口,如果此通路異常調(diào)試信息則無(wú)法正常輸出;后者實(shí)效性差,日志需要事后用仿真器讀出。異步串口UART以其方便快捷靈活的特點(diǎn)為許多現(xiàn)代處理器作為調(diào)試信息輸出的首選。另夕卜,DSP的EDMA(EnhancedDirectMemoryAccess增強(qiáng)型直接內(nèi)存存取)在啟動(dòng)后無(wú)需CPU干預(yù)即可工作,即使在DSP死沖幾的情況下也是如此。所以基于上述的技術(shù)背景,本發(fā)明需要在DSP芯片中,通過(guò)現(xiàn)有的同步串口McBsp實(shí)現(xiàn)異步串口UART操作。
發(fā)明內(nèi)容本發(fā)明要解決的技術(shù)問(wèn)題是提供一種在DSP上利用同步串口McBsp輸出異步串口UART調(diào)試信息的方法。對(duì)McBsp的管腳和時(shí)鐘估支一些改動(dòng)和配置,使其符合UART的傳輸時(shí)序從而構(gòu)建出異步串口;將一些關(guān)鍵信息集中打印到McBsp的發(fā)送緩沖區(qū)中,由EDMA負(fù)責(zé)從McBsp也就是構(gòu)建的UART(DSP外看到的)輸出。為了解決上述問(wèn)題,本發(fā)明提供了一種在DSP上利用同步串口輸出異步串口調(diào)試信息的方法,利用同步串口與異步串口的數(shù)據(jù)幀的結(jié)構(gòu)對(duì)應(yīng)關(guān)系,以及同步串口的位時(shí)鐘與異步串口的波特率的對(duì)應(yīng)關(guān)系,構(gòu)造出異步串口數(shù)據(jù)幀;同時(shí)對(duì)DSP上同步串口的幀同步和發(fā)送數(shù)據(jù)的管腳進(jìn)行邏輯與操作,并對(duì)其輸出值進(jìn)行擴(kuò)展,使其符合異步串口時(shí)序,輸出異步串口調(diào)試信息。進(jìn)一步的,本發(fā)明所述的方法,其特征在于,所述同步串口,包括McBsp;所述異步串口,包括UART;進(jìn)一步的,本發(fā)明所述的方法,其特征在于,所述同步串口McBsp數(shù)據(jù)幀結(jié)構(gòu),包括l比特的低電平幀同步、以及6至12比特的McBsp同步幀,其位時(shí)鐘與UART的波特率同頻;進(jìn)一步的,本發(fā)明所述的方法,其特征在于,所述異步串口UART數(shù)據(jù)幀結(jié)構(gòu),包括1比特起始位、5至8比特?cái)?shù)據(jù)位、1比特可選的奇偶校驗(yàn)位,以及0.5比特或者1至2比特停止位;進(jìn)一步的,本發(fā)明所述的方法,其特征在于,所述異步串口UART與同步串口McBsp的數(shù)據(jù)幀的結(jié)構(gòu)對(duì)應(yīng)關(guān)系,包括l比特的〗氐電平幀同步,對(duì)應(yīng)UART的1比特起始位;6至12比特的McBsp同步幀,對(duì)應(yīng)UART的5至8比特?cái)?shù)據(jù)位、1比特可選的奇偶校驗(yàn)位、以及0.5比特或者1至2比特停止位;進(jìn)一步的,本發(fā)明所述的方法,其特征在于,所述同步串口McBsp的位時(shí)鐘與異步串口UART的波特率的對(duì)應(yīng)關(guān)系,包括同步串口McBsp的位時(shí)鐘與異步串口UART的波特率的同頻;進(jìn)一步的,本發(fā)明所述的方法,其特征在于,所述構(gòu)造異步串口數(shù)據(jù)頻關(guān)系、以及所述兩種串口的數(shù)據(jù)幀的結(jié)構(gòu)對(duì)應(yīng)關(guān)系,采用展寬同步時(shí)鐘方法,通過(guò)提高同步串口McBsp的位時(shí)鐘為原來(lái)的8倍,獲得了與異步串口UART起始位相同寬度的幀同步;進(jìn)一步的,本發(fā)明所述的方法,其特征在于,所述同步串口McBsp的位時(shí)鐘,由DSP主時(shí)鐘分頻獲得,此時(shí)幀同步的寬度為串口數(shù)據(jù)字寬的倍數(shù);進(jìn)一步的,本發(fā)明所述的方法,其特征在于,所述對(duì)輸出值進(jìn)行擴(kuò)展,包括在輸出值的前端加入8比特的0數(shù)據(jù),后端加入8比特的1數(shù)據(jù)。采用本發(fā)明所述方法,與現(xiàn)有技術(shù)相比,克服了DSP實(shí)際過(guò)程中沒(méi)有調(diào)試信息輸出通道的弊端,提供穩(wěn)定可靠的調(diào)試輸出通道;時(shí)效性性好,可以捕捉DSP出現(xiàn)異常時(shí)的狀態(tài),提供定位問(wèn)題的線(xiàn)索;UART波特率可以更改,方便用戶(hù)使用。圖1是DSP系統(tǒng)中Host-Slave模式的設(shè)計(jì)示意圖;圖2是DSP系統(tǒng)中Standalone模式的設(shè)計(jì)示意圖;圖3是UART串口時(shí)序和McBsp時(shí)序的對(duì)應(yīng)關(guān)系示意圖;圖4是本發(fā)明實(shí)施例中構(gòu)造UART異步串口的示意圖;圖5是本發(fā)明實(shí)施例中數(shù)據(jù)擴(kuò)展過(guò)程的示意圖;圖6是本發(fā)明實(shí)施例中在DSP上利用同步串口McBsp構(gòu)造異步串口UART來(lái)輸出調(diào)試信息的結(jié)構(gòu)示意圖;圖7是圖6所示的本發(fā)明實(shí)施例的工作流程圖。具體實(shí)施例方式本發(fā)明為了解決傳統(tǒng)技術(shù)方案存在的弊端,通過(guò)以下具體實(shí)施例進(jìn)一步闡述本發(fā)明所述的一種在DSP上利用同步串口McBsp輸出異步串口UART調(diào)試信息的方法,以下對(duì)具體實(shí)施方式進(jìn)行詳細(xì)描述,^f旦不作為對(duì)本發(fā)明的限定。如圖1所示,為DSP系統(tǒng)中Host-Slave模式的設(shè)計(jì)示意圖。其中101是帶有網(wǎng)口103的HOST芯片,在開(kāi)發(fā)初期DSP102通過(guò)Jtag104輸出調(diào)試信息,產(chǎn)品化后調(diào)試信息通過(guò)主機(jī)接口由HOST101負(fù)責(zé)輸出。如圖2所示,為DSP系統(tǒng)中Standalone模式的設(shè)計(jì)示意圖。在開(kāi)發(fā)初期DSP201通過(guò)Jtag202輸出調(diào)試信息,產(chǎn)品化后調(diào)試信息一4殳采用保存曰志的方法,日志保存在FLASH存儲(chǔ)介質(zhì)203中。如圖3所示,為UART串口時(shí)序和McBsp時(shí)序的對(duì)應(yīng)關(guān)系示意圖。其中,301是UART串口的時(shí)序圖,UART—幀數(shù)據(jù)由lbit低電平的起始位、58bit數(shù)據(jù)位、lbit可選的奇偶校驗(yàn)位、l~2bit高電平的停止位(本例為lbit)組成;302304是對(duì)應(yīng)的McBsp時(shí)序,其中302是位時(shí)鐘,與UART的波特率同頻;303是幀同步信號(hào),低電平lbit寬,高電平n+2bit寬(『58);304是一幀McBsp數(shù)據(jù),寬度為mbit(m=n+3)。可見(jiàn),完整的一幀UART數(shù)據(jù)由lbit起始位、58bit數(shù)據(jù)位、lbit可選的奇偶校驗(yàn)位、12bit(可取0.5bit)停止位組成。這樣的數(shù)據(jù)幀結(jié)構(gòu)對(duì)于McBsp而言,可以解釋為包含lbit低電平幀同步(起始位)、612數(shù)據(jù)(數(shù)據(jù)位+奇偶校驗(yàn)位+停止位)的McBsp同步幀,位時(shí)鐘與UART的波特率同頻。如圖4所示,為本發(fā)明實(shí)施例中構(gòu)造UART異步串口的示意圖,以lbit起始位、8bit數(shù)據(jù)位、無(wú)奇偶校驗(yàn)位、lbit停止位的UART為例。其中,401是DSP上McBsp的管腳配置,對(duì)DSP上McBsp的幀同步與發(fā)送數(shù)據(jù)的管腳進(jìn)行邏輯與操作;402是401中經(jīng)過(guò)與門(mén)后得到信號(hào)即構(gòu)造的UART信號(hào);位時(shí)鐘403是與URAT波特率同頻的時(shí)鐘;位時(shí)鐘404由DSP的主時(shí)鐘分頻得到并作為McBsp模塊的時(shí)鐘源,此時(shí)幀同步寬度必須要保證是串口數(shù)據(jù)字寬的倍數(shù),比如8bit寬的數(shù)據(jù),幀同步寬度應(yīng)該是8bit寬;405是符合UART時(shí)序的幀同步輸出,低電平有效;406是經(jīng)過(guò)擴(kuò)展的數(shù)據(jù),byte0byte7中每個(gè)byte實(shí)際對(duì)應(yīng)lbyte的數(shù)據(jù),每個(gè)byte要么是全O要么是全1,在這8byte之前添加1個(gè)全0的byte,之后添加1個(gè)全1的byte,以構(gòu)成UART的時(shí)序。如圖5所示,是本發(fā)明實(shí)施例中數(shù)據(jù)擴(kuò)展過(guò)程的示意圖。以字符串HelloWorld!中的H為例,演示了數(shù)據(jù)的擴(kuò)展過(guò)程以及最終在緩沖區(qū)中需要存儲(chǔ)的數(shù)據(jù),H的ASCII碼為0x48,對(duì)應(yīng)二進(jìn)制數(shù)為OlOOlOOOb。擴(kuò)展后的數(shù)據(jù)在存入緩沖區(qū)前還需擴(kuò)展的起始位和停止位。也就是說(shuō)每表征一個(gè)原始字符,需要在緩沖區(qū)中分配10byte的存儲(chǔ)空間。如圖6所示,是本發(fā)明實(shí)施例中在DSP上利用同步串口McBsp構(gòu)造異步串口UART來(lái)輸出調(diào)試信息的結(jié)構(gòu)示意圖。由利用同步串口McBsp構(gòu)建UART的DSP501、電平轉(zhuǎn)換器件502、連接PC機(jī)和UART口的DB9電纜、調(diào)試信息的顯示終端PC才幾504組成。在DSP501中各個(gè)重要信息收集模塊負(fù)責(zé)收集需要輸出的調(diào)試信息,經(jīng)過(guò)數(shù)據(jù)擴(kuò)展后送至McBsp的緩沖區(qū),由EDMA負(fù)責(zé)從構(gòu)造好的UART口輸出;在向PC機(jī)串口輸入之前,需要經(jīng)過(guò)電平轉(zhuǎn)換器件502,把CMOS電平轉(zhuǎn)換為RS232電平;然后經(jīng)過(guò)電平轉(zhuǎn)換之后的引線(xiàn)接至DB9連接電纜503;最后送至調(diào)試信息的顯示終端PC機(jī)504。501中的GPIO引腳的輸入作為UART波特率預(yù)設(shè)值,在DSP初始化時(shí)讀入,GPIOl~0的值與UART波特率以及McBsp位時(shí)鐘的關(guān)系如下表<table>tableseeoriginaldocumentpage9</column></row><table>上表中,采用展寬同步時(shí)鐘的方法,即提高位時(shí)鐘的方法位時(shí)鐘提高為原來(lái)的8倍;這樣原有l(wèi)bit的數(shù)據(jù),需要展寬為8bit,0變?yōu)?bit0(0x00),1變?yōu)?bit1(0xFF)。從DSP內(nèi)側(cè)看,依然是同步串口McBsp,而在DSP外面看來(lái),就是UART串口,發(fā)送端就l條線(xiàn)。PC機(jī)504也可以通過(guò)DB9電纜向DSP501發(fā)送改變波特率的命令,以期達(dá)到動(dòng)態(tài)改變波特率的目的。如圖7所示,是圖6所示的本發(fā)明實(shí)施例的工作流程圖。包括以下步驟步驟601,DSP先讀入GPIO輸入引腳的值,計(jì)算出對(duì)應(yīng)的McBsp位時(shí)鐘、幀同步頻率;步驟602,根據(jù)計(jì)算出的時(shí)鐘、幀同步頻率,配置McBsp清空發(fā)送緩沖區(qū),啟動(dòng)McBsp。此時(shí)由于沒(méi)有信息收集到發(fā)送緩沖區(qū),在DSP外構(gòu)造好的UART口上只能得到只有起始位和停止位、數(shù)據(jù)位全空的信號(hào);步驟603,DSP在運(yùn)行過(guò)程中,會(huì)有多個(gè)重要信息收集點(diǎn)收集收集調(diào)試信息,這些信息包括棧、重要寄存器等;步驟604,調(diào)試信息經(jīng)過(guò)字符串化、擴(kuò)展拼裝后,送至發(fā)送緩沖區(qū)。緩沖區(qū)因?yàn)槭嵌〞r(shí)輸出,而調(diào)試信息不是定時(shí)寫(xiě)入的,因此信息輸出不是均勻的。在緩沖區(qū)切換的時(shí)間間隔內(nèi),如果沒(méi)有新的調(diào)試信息寫(xiě)入,會(huì)重復(fù)發(fā)送緩沖區(qū)中的信息。利用這個(gè)特性,可以捕捉DSP異常時(shí)的狀態(tài),提供定位問(wèn)題的線(xiàn)索;步驟605,拼裝好后的調(diào)試信息通過(guò)構(gòu)造好的UART口輸出,實(shí)際上就是發(fā)送數(shù)據(jù)與McBsp的幀同步信號(hào)進(jìn)行與操作;步驟606,UART口輸出作電平轉(zhuǎn)換送至DB9電纜;步驟607,DB9電纜把調(diào)試信息送PC機(jī)顯示,需要在顯示前把一些冗余的空信息剔除。當(dāng)然,本發(fā)明還可有其他多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員可根據(jù)本發(fā)明做出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。權(quán)利要求1、一種在DSP上利用同步串口輸出異步串口調(diào)試信息的方法,其特征在于,利用同步串口與異步串口的數(shù)據(jù)幀的結(jié)構(gòu)對(duì)應(yīng)關(guān)系,以及同步串口的位時(shí)鐘與異步串口的波特率的對(duì)應(yīng)關(guān)系,構(gòu)造出異步串口數(shù)據(jù)幀;同時(shí)對(duì)DSP上同步串口的幀同步和發(fā)送數(shù)據(jù)的管腳進(jìn)行邏輯與操作,并對(duì)其輸出值進(jìn)行擴(kuò)展,使其符合異步串口時(shí)序,輸出異步串口調(diào)試信息。2、如權(quán)利要求1所述的方法,其特征在于,所述同步串口,包括McBsp;所述異步串口,包括UART。3、如權(quán)利要求2所述的方法,其特征在于,所述同步串口McBsp數(shù)據(jù)幀結(jié)構(gòu),包括1比特的低電平幀同步、以及6至12比特的McBsp同步幀,其位時(shí)鐘與UART的波特率同頻。4、如權(quán)利要求3所述的方法,其特征在于,所述異步串口UART數(shù)據(jù)幀結(jié)構(gòu),包括1比特起始位、5至8比特?cái)?shù)據(jù)位、1比特可選的奇偶校驗(yàn)位,以及0.5比特或者1至2比特停止位。5、如權(quán)利要求4所述的方法,其特征在于,所述異步串口UART與同步串口McBsp的凄t據(jù)幀的結(jié)構(gòu)對(duì)應(yīng)關(guān)系,包括1比特的低電平幀同步,對(duì)應(yīng)UART的1比特起始位;6至12比特的McBsp同步幀,對(duì)應(yīng)UART的5至8比特凄t據(jù)位、1比特可選的奇偶校驗(yàn)位、以及0.5比特或者1至2比特停止位。6、如權(quán)利要求5所述的方法,其特征在于,所述同步串口McBsp的位時(shí)鐘與異步串口UART的波特率的對(duì)應(yīng)關(guān)系,包括同步串口McBsp的位時(shí)鐘與異步串口UART的波特率的同頻。7、如權(quán)利要求6所述的方法,其特征在于,所述構(gòu)造異步串口數(shù)據(jù)幀,包括根據(jù)上述同頻關(guān)系、以及所述兩種串口的數(shù)據(jù)幀的結(jié)構(gòu)對(duì)應(yīng)關(guān)系,采用展寬同步時(shí)鐘方法,通過(guò)提高同步串口McBsp的位時(shí)鐘為原來(lái)的8倍,獲得了與異步串口UART起始位相同寬度的幀同步。8、如權(quán)利要求7所述的方法,其特征在于,所述同步串口McBsp的位時(shí)鐘,由DSP主時(shí)鐘分頻獲得,此時(shí)幀同步的寬度為串口數(shù)據(jù)字寬的倍數(shù)。9、如權(quán)利要求2所述的方法,其特征在于,所述對(duì)輸出值進(jìn)行擴(kuò)展,包括在輸出值的前端加入8比特的0數(shù)據(jù),后端加入8比特的1數(shù)據(jù)。全文摘要本發(fā)明公開(kāi)了一種在DSP上利用同步串口輸出異步串口調(diào)試信息的方法,利用同步串口與異步串口的數(shù)據(jù)幀的結(jié)構(gòu)對(duì)應(yīng)關(guān)系,以及同步串口的位時(shí)鐘與異步串口的波特率的對(duì)應(yīng)關(guān)系,構(gòu)造出異步串口數(shù)據(jù)幀;同時(shí)對(duì)DSP上同步串口的幀同步和發(fā)送數(shù)據(jù)的管腳進(jìn)行邏輯與操作,并對(duì)其輸出值進(jìn)行擴(kuò)展,使其符合異步串口時(shí)序,輸出異步串口調(diào)試信息。與現(xiàn)有技術(shù)相比,克服了DSP實(shí)際過(guò)程中沒(méi)有調(diào)試信息輸出通道的弊端,提供穩(wěn)定可靠的調(diào)試輸出通道;時(shí)效性性好,可以捕捉DSP出現(xiàn)異常時(shí)的狀態(tài),提供定位問(wèn)題的線(xiàn)索;UART波特率可以更改,方便用戶(hù)使用。文檔編號(hào)G06F11/10GK101131658SQ20071013874公開(kāi)日2008年2月27日申請(qǐng)日期2007年8月13日優(yōu)先權(quán)日2007年8月13日發(fā)明者鵬丁,丁元欣,華李,柴作朋,祁曉璐,軍苗申請(qǐng)人:中興通訊股份有限公司