多路UART總線與CAN總線通訊系統(tǒng)設(shè)計(jì)
摘要:主要利用TI公司的多路異步收發(fā)器TL16C554和PHILIPS公司的SJA1000設(shè)計(jì)一個(gè)多路總線協(xié)議轉(zhuǎn)換通訊系統(tǒng)。為了實(shí)現(xiàn)4路UART總線與CAN總線之間的相互轉(zhuǎn)換過(guò)程,采用微控制器AT89S51來(lái)控制通訊數(shù)據(jù)轉(zhuǎn)換,通過(guò)硬件電路實(shí)驗(yàn)和軟件調(diào)試算法,得到了4路串行總線與CAN總線之間的相互透明轉(zhuǎn)換過(guò)程。該電路系統(tǒng)大大方便了具有UART接口的設(shè)備進(jìn)行遠(yuǎn)距離、多節(jié)點(diǎn)傳輸,增強(qiáng)了系統(tǒng)的通訊可靠性。
關(guān)鍵詞:UART;CAN;總線協(xié)議;協(xié)議轉(zhuǎn)換
由于在消費(fèi)類(lèi)電子產(chǎn)品、計(jì)算機(jī)外設(shè)、汽車(chē)和工業(yè)應(yīng)用中增加了嵌入式功能,對(duì)低成本、高速和高可靠通信介質(zhì)的要求也不斷增長(zhǎng),以滿(mǎn)足這些應(yīng)用,其結(jié)果是越來(lái)越多的處理器和控制器用不同類(lèi)型的總線集成在一起,實(shí)現(xiàn)與PC軟件、開(kāi)發(fā)系統(tǒng)或網(wǎng)絡(luò)中其他設(shè)備的通信。微處理器中常用的集成串行總線是通用異步接收器傳輸總線、串行通信接口以及車(chē)用串行總線,包括控制器局域網(wǎng)(CAN)。這些總線在速度、物理接口要求和通信方法學(xué)上都有所不同。本文主要利用TI公司的多路異步收發(fā)器TL16C554和PHILIPS公司的SJA1000實(shí)現(xiàn)一個(gè)4路UART總線與CAN總線之間的相互通訊過(guò)程。
1 UART與CAN介紹
UART模塊采用TI公司的TL16C554,它是含有4路16C550的增強(qiáng)型異步通訊電路,每路通道能從外圍設(shè)備或MODEM接收數(shù)據(jù),實(shí)現(xiàn)串并轉(zhuǎn)換;同時(shí),也可以從CPU端接收數(shù)據(jù),實(shí)現(xiàn)并串轉(zhuǎn)換。TL16C554內(nèi)部具有16 B的接收和發(fā)送FIFO,在FIFO模式下,通過(guò)使用RTS和CTS輸入信號(hào)可以自動(dòng)控制串行數(shù)據(jù)流,可選的自動(dòng)流控制特性大大降低了軟件規(guī)模,提高了系統(tǒng)效率。TL16C554也可以通過(guò)FIFO觸發(fā)點(diǎn)與TXRDY或RXRDY信號(hào)實(shí)現(xiàn)DMA模式的數(shù)據(jù)傳輸,片內(nèi)的狀態(tài)寄存器為用戶(hù)提供錯(cuò)誤指示、器件的工作狀態(tài)和調(diào)制解調(diào)器接口控制。可通過(guò)調(diào)整系統(tǒng)中斷來(lái)滿(mǎn)足用戶(hù)的要求,內(nèi)部的環(huán)回模式實(shí)現(xiàn)了片內(nèi)的故障診斷。TL16C554電路的串行數(shù)據(jù)格式為:
這些數(shù)據(jù)格式主要通過(guò)電路的線控制寄存器來(lái)進(jìn)行控制,其中起始位為低電平“0”;數(shù)據(jù)位長(zhǎng)度可選擇5~8位;奇偶校驗(yàn)位可選擇為奇校驗(yàn)、偶校驗(yàn)或無(wú)校驗(yàn);停止位可選擇1位、2位或1/2位。
CAN模塊采用一種獨(dú)立的CAN控制器SJA1000,主要用于移動(dòng)目標(biāo)和一般工業(yè)環(huán)境中的區(qū)域網(wǎng)絡(luò)控制,是PHILIPS公司半導(dǎo)體PCA82C200CAN控制器的替代產(chǎn)品。SJA1000具有BasicCAN和PeliCAN 2種工作方式。BasicCAN模式是上電后默認(rèn)的操作模式,而PeliCAN模式是新的操作模式,它能夠處理所有CAN2.0B規(guī)范的幀類(lèi)型,而且它還提供一些增強(qiáng)功能,使SJA1000能應(yīng)用于更寬的領(lǐng)域。
其中SJA1000的數(shù)據(jù)幀格式為:
評(píng)論