<var id="fnfpo"><source id="fnfpo"></source></var>
<rp id="fnfpo"></rp>

<em id="fnfpo"><object id="fnfpo"><input id="fnfpo"></input></object></em>
<em id="fnfpo"><acronym id="fnfpo"></acronym></em>
  • <th id="fnfpo"><track id="fnfpo"></track></th>
  • <progress id="fnfpo"><track id="fnfpo"></track></progress>
  • <tbody id="fnfpo"><pre id="fnfpo"></pre></tbody>

  • CAN-RS232通信轉換模塊的設計與實現

    發布時間:2010-6-18 17:11    發布者:zealot
    關鍵詞: CAN , RS232 , 通信轉換
    1 引言
    RS232作為標準的計算機串行接口已被廣泛使用,與此同時,隨著現場總線技術的飛速發展,具有實時性好、可靠性高、結構簡單等優點的CAN總線在測控系統中也越來越多地被采用,但由于兩者的總線結構、通信協議及傳輸特點各不相同,因而給不同設備之間的連接帶來諸多不便。因此,如何以最簡單的方式實現CAN節點與RS232串行口的通信就成為工程實踐中一個不可回避的問題。

    本文采用典型的不具備CAN通信能力的AT89C51單片機作為微處理器,設計了一個簡單、實用的通信轉換模塊。該通信轉換模塊具有體積小、結構簡單、通用性好、使用方便等特點。

    2 工作原理

    CAN-RS232通信轉換模塊通過硬件電路的電平標準轉換和軟件編程的通信協議轉換實現相關功能。

    2.1 電平標準轉換

    RS232采用的不是TTL電平的接口標準,而是負邏輯,即邏輯"1"為-3 V~-15 V;邏輯"0"為+3 V~+15 V;而CAN總線是采用"顯性"和"隱性"兩個互補的邏輯值表示"0"和"1",其信號是以兩線之間的"差分"電壓形式出現的。這樣導致兩總線之間的信號電壓不匹配。無法直接進行正常的通信,因此,需要相應的硬件接口電路實現電平標準轉換。

    2.2 通信協議轉換

    RS232通信屬于異步串行通信。一般為兩點傳輸,其每幀的數據格式通常為:起始位+數據位+奇偶校驗位(可省略)+停止位;每個數據包的格式通常為:數據包頭+數據字節+校驗和(溢出不計)。而CAN通信屬于總線通信,可以同時存在多個節點,因此通信協議相對也比較復雜,這里以標準幀傳輸為例,其數據格式通常如表1所列。因此,需要軟件處理實現通信協議的轉換。


    3 硬件設計

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


    AF89C51采用外接晶體振蕩器提供時鐘輸入,通過并行地址/數據復用的方式訪問CAN控制器SJA1000,P2.0引腳作為片選端口;SJA1000作為CAN控制器,也采用單獨的外部時鐘輸入,由于集成了CAN協議的物理層和數據鏈路層功能,可完成對通信數據的幀處理,其地址為0x00~0xFF;TJA1050作為CAN控制器和物理總線之間的接口,采用高速工作模式,用于提供總線的差動發送能力和CAN控制器差動接收能力;MAX202E用于實現RS232電平到微控制器接口電路的TTL電平轉換。

    4 軟件設計

    模塊的軟件設計主要包括RS232通信程序和CAN通信程序兩部分,采用中斷方式。其中,RS232通信數據傳輸的波特率為115 200 bit/s,數據格式為1位起始位、8位數據位、1位停止位;CAN總線的傳輸波特率為500 kbit/s,采用PeliCAN模式的標準數據幀格式,每條報文的標識符ID為11位,有效數據為0~8個字節。其軟件流程如圖2所示。


    在RS232中斷程序中,微處理器對接收的串口數據進行處理后提取出數據字節,通過增加幀結構信息、幀類型、字節長度和標識符等生成CAN報文格式,然后由CAN控制器的發送緩沖區發送出去;在CAN中斷程序中,微處理器對接收的有效CAN報文進行解析,提取出字節長度和字節內容,通過增加數據頭、數據尾和校驗和轉換為RS232通信格式,完成數據傳輸。

    5 結束語

    該設計已應用于筆者開發的項目一某型低空紅外預警系統。用CAN-RS232通信轉換模塊將CAN總線收到的角度傳感器測出的空中目標方位角和高低角(10 ms一組測角、波特率為500 kbit/s)實時轉換為RS232(波特率為115 200 bit/s)串行口數據,使主控計算機(PC104工控機)接收、處理和顯示;同時將RS232輸出的主控計算機命令轉換為CAN總線數據。經實踐證明,該模塊工作穩定、可靠,且成本低,完全能夠滿足系統的指標要求,取得了良好的應用效果。
    本文地址:http://www.portaltwn.com/thread-13210-1-1.html     【打印本頁】

    本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
    您需要登錄后才可以發表評論 登錄 | 立即注冊

    廠商推薦

    • Microchip視頻專區
    • Dev Tool Bits——使用MPLAB® Discover瀏覽資源
    • Dev Tool Bits——使用條件軟件斷點宏來節省時間和空間
    • Dev Tool Bits——使用DVRT協議查看項目中的數據
    • Dev Tool Bits——使用MPLAB® Data Visualizer進行功率監視
    • 貿澤電子(Mouser)專區

    相關視頻

    關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
    電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
    快速回復 返回頂部 返回列表
    精品一区二区三区自拍图片区_国产成人亚洲精品_亚洲Va欧美va国产综合888_久久亚洲国产精品五月天婷