CAN-RS232通信轉換模塊的設計與實現(xiàn)
摘要:設計了一個結構簡單、使用方便、應用面廣的CAN節(jié)點與RS232串口通信轉換模塊.詳細介紹了該模塊的工作原理和實現(xiàn)方法,即通過軟硬件相結合實現(xiàn)電平標準和通信協(xié)議的轉換,從而完成兩者之間的信息傳輸.
本文引用地址:http://www.biyoush.com/article/157636.htm1 引言
RS232作為標準的計算機串行接口已被廣泛使用,與此同時,隨著現(xiàn)場總線技術的飛速發(fā)展,具有實時性好、可靠性高、結構簡單等優(yōu)點的CAN總線在測控系統(tǒng)中也越來越多地被采用。但由于兩者的總線結構、通信協(xié)議及傳輸特點各不相同,因而給不同設備之間的連接帶來諸多不便,因此,如何以最簡單的方式實現(xiàn)CAN節(jié)點與RS232串行口的通信就成為工程實踐中一個不可回避的問題。
本文采用典型的不具備CAN通信能力的AT89C51單片機作為微處理器,設計了一個簡單、實用的通信轉換模塊。該通信轉換模塊具有體積小、結構簡單、通用性好、使用方便等特點。
2 工作原理
CAN-RS232通信轉換模塊通過硬件電路的電平標準轉換和軟件編程的通信協(xié)議轉換實現(xiàn)相關功能。
2.1 電平標準轉換
RS232采用的不是TTL電平的接口標準,而是負邏輯,即邏輯“1”為-3 V―-15 V:邏輯“0”為+3 V-+15 V;而CAN總線是采用“顯性”和“隱性”兩個互補的邏輯值表示“0”和“1”,其信號是以兩線之間的“差分”電壓形式出現(xiàn)的。這樣導致兩總線之間的信號電壓不匹配.無法直接進行正常的通信,因此.需要相應的硬件接口電路實現(xiàn)電平標準轉換。
2.2 通信協(xié)議轉換
RS232通信屬于異步串行通信,一般為兩點傳輸 其每幀的數據格式通常為:起始位+數據位+奇偶校驗位(可省略)+停止位;每個數據包的格式通常為:數據包頭+數據字節(jié)+校驗和(溢出不計)。而CAN通信屬于總線通信,可以同時存在多個節(jié)點,因此通信協(xié)議相對也比較復雜,這里以標準幀傳輸為例,其數據格式通常如表1所列。因此,需要軟件處理實現(xiàn)通信協(xié)議的轉換。
3 硬件設計
模塊采用Atmel公司生產的AT89C51型單片機作為微處理器.采用SJA1000和TJA1050分別作為CAN控制器和驅動器.采用MAX202E作為RS232串行接口驅動器,其硬件連接電路圖如圖1所示。
AT89C51采用外接晶體振蕩器提供時鐘輸入.通過并行地址/數據復用的方式訪問CAN控制器SJA1000.P2.0引腳作為片選端口;SJA1000作為CAN控制器,也采用單獨的外部時鐘輸入,由于集成了CAN協(xié)議的物理層和數據鏈路層功能,可完成對通信數據的幀處理, 其地址為0x00-0xFF:TJA1050作為CAN控制器和物理總線之間的接口.采用高速工作模式,用于提供總線的差動發(fā)送能力和CAN控制器差動接收能力;MAX202E用于實現(xiàn)RS232電平到微控制器接口電路的TTL電平轉換。
數字通信相關文章:數字通信原理
通信相關文章:通信原理
評論