當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]本文介紹的三種實(shí)現(xiàn)C32異步串行口的方法,前兩種方法使用不是非常方便,而且占用了大量的C32系統(tǒng)資源,一般都使用第三種方法來(lái)實(shí)現(xiàn)C32和PC機(jī)之間的通信。

高速數(shù)字信號(hào)處理器在現(xiàn)代工業(yè)控制中,非凡是電氣傳動(dòng)控制中的應(yīng)用非常廣泛。大量文獻(xiàn)介紹的應(yīng)用于電氣傳動(dòng)控制的DSP使用的是TI公司的,TMS320系列DSP芯片,這其中又以TMX210C3X和TMS320F24X為主流應(yīng)用產(chǎn)品。TMS320C32是TMS320C3X系列產(chǎn)品中應(yīng)用比較多的一種。主工業(yè)控制中,經(jīng)常需要使用上位PC機(jī)來(lái)控制底層的DSP芯片,一般采用異步串行通信協(xié)議,使用RS-232或485來(lái)實(shí)現(xiàn)。C32自身帶有的串口為同步串口。為了實(shí)現(xiàn)C32和PC機(jī)之間的串行口通信,必須擴(kuò)展C32的全雙工異步串口功能。

C32實(shí)現(xiàn)UART接口的方法有三種:

使用C32的現(xiàn)有資源模擬串行口的功能;

使用可編程芯片實(shí)現(xiàn)同步和異步協(xié)議的轉(zhuǎn)換;

使用專用的異步通信器件實(shí)現(xiàn),例如PC機(jī)上使用16C550系列實(shí)現(xiàn)UART。

1 使用C32的現(xiàn)有資源模擬串行口的功能

通過(guò)使用兩個(gè)通用I/O引腳、兩個(gè)定時(shí)器和一個(gè)外部中斷,可以用軟件模擬UART的功能。使用中斷實(shí)現(xiàn)軟件模擬UART采用的通訊格式為:波特率9600bPs、8個(gè)數(shù)據(jù)位、一個(gè)停止位、無(wú)奇偶校驗(yàn)位。這種實(shí)現(xiàn)方法由Ted Fried高級(jí)計(jì)算機(jī)通信公司提供。
1.1 硬件

圖1為硬件連接線圖。接收線同時(shí)接到INT0和XFl引腳。起始位數(shù)據(jù)的下降沿觸發(fā)外部中斷INT0。傳輸線接到XFO引腳,使用上拉電阻輸出。

1.2 軟件

1.2.1 接收數(shù)據(jù)

根據(jù)UAHT協(xié)議,接收到的第一個(gè)數(shù)據(jù)是起始位,在軟件中。起始位會(huì)觸發(fā)一個(gè)外部中斷INT0。害INT0的中斷服務(wù)程序例程RXINT0中,定時(shí)器0首先玻裝入一個(gè)時(shí)間常數(shù),這個(gè)時(shí)間常數(shù)的定時(shí)時(shí)間等于半個(gè)數(shù)據(jù)位的延遲時(shí)間;然后裝入定時(shí)器0的中斷向量表,并答應(yīng)定時(shí)器中斷0,程序返回主程序,等待定時(shí)器0中斷。假如定時(shí)器0觸發(fā)中斷,RX-TMR-INT例程則開始技行接收工作。第一個(gè)定時(shí)時(shí)間為半個(gè)數(shù)捉位的時(shí)間.CPU在接收位的中間時(shí)刻采樣X(jué)FI的數(shù)據(jù),并且驗(yàn)證接收到的數(shù)據(jù)是否為一個(gè)低電平。假如驗(yàn)證正確,表示接收到的數(shù)據(jù)為一個(gè)起始位,就可以接收數(shù)據(jù)了。在接收數(shù)據(jù)時(shí),重新裝載定時(shí)器0的定時(shí)值為一個(gè)數(shù)據(jù)位的時(shí)間并且啟動(dòng)定時(shí)器0,程序返回主程序,等待定時(shí)器0中斷的到來(lái)。

在隨后的定時(shí)器0的服務(wù)程序中,實(shí)現(xiàn)了在接收位的中間時(shí)刻采樣接收線的狀態(tài)來(lái)得到實(shí)際數(shù)據(jù)。將這些接收到的數(shù)據(jù)移位到一個(gè)存儲(chǔ)器單元中。在第9次中斷時(shí),對(duì)接收到的停止位進(jìn)行驗(yàn)證。假如正確,軟件執(zhí)行一個(gè)陷阱中斷,程序返回到主程序。假如不正確,調(diào)用BAD_STOP_BIT子程序進(jìn)行相應(yīng)的錯(cuò)誤處理。接收數(shù)據(jù)被處理完后,重新答應(yīng)外部中斷0,等待下一個(gè)起始位的到來(lái)。

1.2.2 發(fā)送數(shù)據(jù)

發(fā)送數(shù)據(jù)例程開始于主程序裝載一個(gè)數(shù)據(jù)到指定的存儲(chǔ)器中,并且調(diào)用TX_MAIN例程。在這個(gè)例程中,狀態(tài)定時(shí)器1的定時(shí)時(shí)間為一個(gè)數(shù)據(jù)位的時(shí)間,重新設(shè)置傳輸計(jì)數(shù)器的值,設(shè)置起始位,并且答應(yīng)定時(shí)器l中斷,返回主程序,等待定時(shí)器1中斷的到來(lái)。只有傳輸計(jì)數(shù)器的值為0時(shí),主程序才會(huì)答應(yīng)重新裝載下一個(gè)需要傳輸?shù)臄?shù)據(jù)到指定的存儲(chǔ)器中。在定時(shí)器1的中斷子程序TX_INT中,程序?qū)⒁獋鬏數(shù)臄?shù)據(jù)從XF0引腳上移位出去,直到傳輸計(jì)數(shù)器的值為0。

具體的程序代碼請(qǐng)見(jiàn)參考文獻(xiàn)。

2 使用FPGA實(shí)現(xiàn)異步和同步串行接口間的協(xié)議轉(zhuǎn)換

有許多應(yīng)用需要使用硬件UART。使用FPGA可以將同步串行口協(xié)議轉(zhuǎn)換為異步串行口通信協(xié)議。具體的邏輯框圖如圖2所示。

系統(tǒng)使用的時(shí)鐘為25MHz,F(xiàn)PCA中使用的時(shí)鐘來(lái)源于C32的H3引腳。通信協(xié)議為:波特率9600bps、一個(gè)起始位、一個(gè)停止位、沒(méi)有奇偶檢驗(yàn)位。圖3所示為傳輸電路。

通過(guò)設(shè)置傳輸定時(shí)器的定時(shí)值可以得到需要的9600bps的波特率。傳輸端口被配置為爆發(fā)傳輸模式,它可以產(chǎn)生UART的一個(gè)起始位。8個(gè)數(shù)據(jù)位之后的停止位可通過(guò)電路來(lái)實(shí)現(xiàn)。圖4為接收電路圖。

當(dāng)電路檢測(cè)到起始位時(shí),接收電路開始工作。起始位的邏輯擅為0。延遲電路在起始位的下降沿被激活。延遲電路的設(shè)置使數(shù)據(jù)的采樣發(fā)生在每個(gè)數(shù)據(jù)位的中間時(shí)刻,它提高了系統(tǒng)抗噪聲的能力。


3 使用ACE實(shí)現(xiàn)UART

微機(jī)上最早使用的ACE是8250,16C550是8250的功能升級(jí)器件。器件在結(jié)構(gòu)上的最大差別是16C550增加了接收和發(fā)送FIFO,因此器件能夠處于交替工作模式,減輕CPU額外的軟件負(fù)擔(dān)。在這種模式下,無(wú)論是接收還是發(fā)送,在可訪問(wèn)的緩沖寄存器和不可訪問(wèn)的移位寄存器之間都增加了16字節(jié)的FIFO,可以使系統(tǒng)負(fù)擔(dān)最小且系統(tǒng)效率最高,而且所有的邏輯功能都在16C550芯片上完成。TLl6C550A有兩個(gè)管腳功能已經(jīng)被改變,使用這兩個(gè)信號(hào)可以答應(yīng)信號(hào)使用DMA的方式來(lái)傳輸。

TLl6C550的主要功能為:TLl6C550在接收外部器件或MODEM的數(shù)據(jù)時(shí)?完成串行到并行的轉(zhuǎn)換;在接收CPU的數(shù)據(jù)時(shí),完成數(shù)據(jù)的并行到串行的變換,并進(jìn)行串行發(fā)送。在ACE器件工作的任何狀態(tài)下,CPU可以讀和通報(bào)ACE器件的狀態(tài)。通報(bào)的狀態(tài)信息包括:傳輸操作正在進(jìn)行過(guò)程中、操作狀態(tài)、碰到了何種錯(cuò)誤等,TLl6C550的內(nèi)部包含一個(gè)可編程的波特率發(fā)生器,波特率為16x內(nèi)部輸入時(shí)鐘頻率.此內(nèi)部輸入時(shí)鐘頻率由輸入的參考基準(zhǔn)振蕩器分頻得到。TLl6C550具有完全的MODEM控制能力。包含一個(gè)處理器中斷系統(tǒng),根據(jù)用戶的專用需要而設(shè)計(jì),在處理通訊連接時(shí),計(jì)算量是最小的。TLl6C550有兩種封裝形式:N PACKAGE 和FN PACKAGE。TL16C550的管腳按功能可以分為:外部時(shí)鐘輸入及波特率控制信號(hào);數(shù)據(jù)和地址總線;片選及讀寫控制信號(hào);MODEM控制信號(hào);復(fù)位及中斷控制信號(hào)。

假如C32要和PC機(jī)通訊,可使用TL16C550完成串行協(xié)議的轉(zhuǎn)換。TLl6C550的輸出接口要和一個(gè)電平轉(zhuǎn)換芯片連接,用于和PC機(jī)的串行通訊接口互聯(lián)。完整的接口示意圖如圖5所示。

其中的MAX232可以使用MAXIM公司的MAX3238來(lái)實(shí)現(xiàn)。

接口電路分為兩大部分:DSP C32和串行通訊芯片TLl6C550之間的接口;串行通訊芯片TLl6C550和PC機(jī)之間的接口。

完整的電路原理圖如圖6所示。

接口邏輯可以使用集成的CPLD實(shí)現(xiàn),本系統(tǒng)中使用的是ALTERA公司的EPM7128SLC184-10。它將芯片TLl6C550作為DSP C32的一個(gè)外設(shè)端口送行尋址。

相應(yīng)的接口邏輯使用AHDL語(yǔ)言描述,具體如下:

TL16C550A一共使用8個(gè)地址對(duì)內(nèi)部寄存器進(jìn)行訪問(wèn)和控制。相對(duì)DSP C32系統(tǒng)而言,假如使用了上面的譯碼邏輯電路,則占用的8個(gè)地址為:0X818000~0X818007。

TLl6C550A串行接口寄存器的尋址表如表1所示。

DLABA2 A1 A0寄 存 器 名 屬 性 地址值 00 0 0接收緩沖寄存器RBR 只讀 0X818000 00 0 0發(fā)送緩沖寄存器TBR 只寫 0X818000 00 0 1中斷使能寄存器IER 讀/寫 0X818001 X0 1 0中斷標(biāo)志寄存器IIR 只寫 0X818002 X0 1 0FIFO控制寄存器FCR 只寫 0X818002 X0 1 1線路控制寄存器LCR 讀/寫 0X818003 X1 0 0MODEM控制寄存器MCR 讀/寫 0X818004 X1 0 1線路狀態(tài)寄存器LSR 讀/寫 0X818005 X11 0MODEM狀態(tài)寄存器MSR 讀/寫 0X818006 X1 1 1便簽寄存器SCR 讀/寫 0X818007 10 0 0除數(shù)低字節(jié)鎖存器DLL 讀/寫 0X818000 10 0 1除數(shù)低字節(jié)鎖存器DLH 讀/寫 0X818001DLAB表示線路控制寄存器的第7位的邏輯值。

在程序中,使用邏輯地址0X818000~0X818007對(duì)TLl6C550A的各個(gè)寄存器進(jìn)行尋址就可以了。

本文介紹的三種實(shí)現(xiàn)C32異步串行口的方法,前兩種方法使用不是非常方便,而且占用了大量的C32系統(tǒng)資源,一般都使用第三種方法來(lái)實(shí)現(xiàn)C32和PC機(jī)之間的通信。

使用TL16C550實(shí)現(xiàn)DSP和PC機(jī)的通信,接口方便、控制簡(jiǎn)單、編程靈活,試驗(yàn)證實(shí)它是非常簡(jiǎn)便可靠的實(shí)現(xiàn)方法。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉