基于A(yíng)T89C51的CAN-RS232通信轉換設計
1 引言
本文引用地址:http://dyxdggzs.com/article/247256.htmRS232作為標準的計算機串行接口已被廣泛使用,與此同時(shí),隨著(zhù)現場(chǎng)總線(xiàn)技術(shù)的飛速發(fā)展,具有實(shí)時(shí)性好、可靠性高、結構簡(jiǎn)單等優(yōu)點(diǎn)的CAN總線(xiàn)在測控系統中也越來(lái)越多地被采用,但由于兩者的總線(xiàn)結構、通信協(xié)議及傳輸特點(diǎn)各不相同,因而給不同設備之間的連接帶來(lái)諸多不便。因此,如何以最簡(jiǎn)單的方式實(shí)現CAN節點(diǎn)與RS232串行口的通信就成為工程實(shí)踐中一個(gè)不可回避的問(wèn)題。
本文采用典型的不具備CAN通信能力的AT89C51單片機作為微處理器,設計了一個(gè)簡(jiǎn)單、實(shí)用的通信轉換模塊。該通信轉換模塊具有體積小、結構簡(jiǎn)單、通用性好、使用方便等特點(diǎn)。
2 工作原理
CAN-RS232通信轉換模塊通過(guò)硬件電路的電平標準轉換和軟件編程的通信協(xié)議轉換實(shí)現相關(guān)功能。
2.1 電平標準轉換
RS232采用的不是TTL電平的接口標準,而是負邏輯,即邏輯"1"為-3 V~-15 V;邏輯"0"為+3 V~+15 V;而CAN總線(xiàn)是采用"顯性"和"隱性"兩個(gè)互補的邏輯值表示"0"和"1",其信號是以?xún)删€(xiàn)之間的"差分"電壓形式出現的。這樣導致兩總線(xiàn)之間的信號電壓不匹配。無(wú)法直接進(jìn)行正常的通信,因此,需要相應的硬件接口電路實(shí)現電平標準轉換。
2.2 通信協(xié)議轉換
RS232通信屬于異步串行通信。一般為兩點(diǎn)傳輸,其每幀的數據格式通常為:起始位+數據位+奇偶校驗位(可省略)+停止位;每個(gè)數據包的格式通常為:數據包頭+數據字節+校驗和(溢出不計)。而CAN通信屬于總線(xiàn)通信,可以同時(shí)存在多個(gè)節點(diǎn),因此通信協(xié)議相對也比較復雜,這里以標準幀傳輸為例,其數據格式通常如表1所列。因此,需要軟件處理實(shí)現通信協(xié)議的轉換。

3 硬件設計
模塊采用Atmel公司生產(chǎn)的AT89C51型單片機作為微處理器,采用SJA1000和TJA1050分別作為CAN控制器和驅動(dòng)器,采用MAX202E作為RS232串行接口驅動(dòng)器,其硬件連接電路圖如圖1所示。

AF89C51采用外接晶體振蕩器提供時(shí)鐘輸入,通過(guò)并行地址/數據復用的方式訪(fǎng)問(wèn)CAN控制器SJA1000,P2.0引腳作為片選端口;SJA1000作為CAN控制器,也采用單獨的外部時(shí)鐘輸入,由于集成了CAN協(xié)議的物理層和數據鏈路層功能,可完成對通信數據的幀處理,其地址為 0x00~0xFF;TJA1050作為CAN控制器和物理總線(xiàn)之間的接口,采用高速工作模式,用于提供總線(xiàn)的差動(dòng)發(fā)送能力和CAN控制器差動(dòng)接收能力;MAX202E用于實(shí)現RS232電平到微控制器接口電路的TTL電平轉換。
4 軟件設計
模塊的軟件設計主要包括RS232通信程序和CAN通信程序兩部分,采用中斷方式。其中,RS232通信數據傳輸的波特率為115 200 bit/s,數據格式為1位起始位、8位數據位、1位停止位;CAN總線(xiàn)的傳輸波特率為500 kbit/s,采用PeliCAN模式的標準數據幀格式,每條報文的標識符ID為11位,有效數據為0~8個(gè)字節。其軟件流程如圖2所示。

在RS232中斷程序中,微處理器對接收的串口數據進(jìn)行處理后提取出數據字節,通過(guò)增加幀結構信息、幀類(lèi)型、字節長(cháng)度和標識符等生成CAN報文格式,然后由CAN控制器的發(fā)送緩沖區發(fā)送出去;在CAN中斷程序中,微處理器對接收的有效CAN報文進(jìn)行解析,提取出字節長(cháng)度和字節內容,通過(guò)增加數據頭、數據尾和校驗和轉換為RS232通信格式,完成數據傳輸。
5 結束語(yǔ)
該設計已應用于筆者開(kāi)發(fā)的項目一某型低空紅外預警系統。用CAN-RS232通信轉換模塊將CAN總線(xiàn)收到的角度傳感器測出的空中目標方位角和高低角(10 ms一組測角、波特率為500 kbit/s)實(shí)時(shí)轉換為RS232(波特率為115 200 bit/s)串行口數據,使主控計算機(PC104工控機)接收、處理和顯示;同時(shí)將RS232輸出的主控計算機命令轉換為CAN總線(xiàn)數據。經(jīng)實(shí)踐證明,該模塊工作穩定、可靠,且成本低,完全能夠滿(mǎn)足系統的指標要求,取得了良好的應用效果。
數字通信相關(guān)文章:數字通信原理
通信相關(guān)文章:通信原理
評論