<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于單片機(jī)控制的CAN與RS-232轉(zhuǎn)換器的研究與設(shè)計(jì)

          基于單片機(jī)控制的CAN與RS-232轉(zhuǎn)換器的研究與設(shè)計(jì)

          作者: 時(shí)間:2013-03-15 來(lái)源:網(wǎng)絡(luò) 收藏


            3.1 基于RS-232協(xié)議的數(shù)據(jù)接收與發(fā)送程序設(shè)計(jì)

            由于RS-232接口發(fā)送數(shù)據(jù)是以字節(jié)為單位,而總線接收數(shù)據(jù)以多字節(jié)組成的數(shù)據(jù)幀為單位,因此為了避免指針指向的混亂,程序中統(tǒng)一使用相同長(zhǎng)度的通用幀來(lái)保存數(shù)據(jù)。RS-232協(xié)議模塊將通用的幀使用SLIP協(xié)議進(jìn)行封裝后發(fā)送,并將接收到的SLIP幀轉(zhuǎn)為通用幀格式轉(zhuǎn)入緩沖區(qū)。系統(tǒng)啟動(dòng)后,主程序調(diào)用RS232_Receive函數(shù)檢測(cè)接收緩沖區(qū)的內(nèi)容,如果緩沖區(qū)內(nèi)有數(shù)據(jù),則調(diào)用RS_Read()函數(shù)讀取緩沖區(qū)中的一幀數(shù)據(jù)并將其送入RS232_Receive()函數(shù)參數(shù)buf指向的緩沖區(qū)后返回。在讀取接收緩沖區(qū)數(shù)據(jù)后會(huì)交由RS232_Send()函數(shù)發(fā)送,并將幀數(shù)據(jù)保存至臨時(shí)發(fā)送緩沖區(qū)bufRS_S。程序通過(guò)ChkEndR()函數(shù)檢測(cè)數(shù)據(jù)幀是否發(fā)送完畢。

            3.2 CAN控制器SJA1000初始化程序設(shè)計(jì)

            CAN控制器SJA1000完成CAN總線幀的發(fā)送和接收任務(wù)。程序中,使用INITCAN()函數(shù)完成對(duì)CAN接口芯片的初始化。初始化程序設(shè)計(jì)對(duì)轉(zhuǎn)換器的正常工作相當(dāng)重要。它主要完成模式設(shè)置、時(shí)鐘輸出寄存器設(shè)置、接受碼寄存器ACR設(shè)置、接收屏蔽碼寄存器AMR設(shè)置、總線定時(shí)器設(shè)置和輸出控制寄存器設(shè)置。

            3.3 基于CAN總線協(xié)議的數(shù)據(jù)接收與發(fā)送程序設(shè)計(jì)

            主程序啟動(dòng)后調(diào)用CAN_Recive()函數(shù)檢查CAN接收緩沖區(qū)中是否有數(shù)據(jù)存在,如果檢查到數(shù)據(jù),則程序從緩沖區(qū)中讀取一幀數(shù)據(jù)并將其送入?yún)?shù)buf指定的緩沖區(qū)中。主程序如果發(fā)現(xiàn)RS-232接收緩沖區(qū)內(nèi)有數(shù)據(jù),則讀取該數(shù)據(jù)幀并將其交由CAN_Send()函數(shù)發(fā)送至CAN總線。這里CAN_Send()函數(shù)接收到的數(shù)據(jù)幀格式為通用幀格式,需要先將其中的DesDevID SouDevID Length 等信息從通用幀中提取出來(lái),填入CAN總線格式幀的各個(gè)位置,再通過(guò)命令寄存器傳遞發(fā)送請(qǐng)求。此外,主程序通過(guò)ChkEndC()函數(shù)檢測(cè)數(shù)據(jù)幀是否發(fā)送完畢。

            4. 結(jié)論

            本設(shè)計(jì)完成了CAN總線與的電路與軟件設(shè)計(jì)。本設(shè)計(jì)的創(chuàng)新點(diǎn)是:由于CAN總線與RS-232接口數(shù)據(jù)通信速率以及通信幀格式都不同,本設(shè)計(jì)最大優(yōu)點(diǎn)是解決了這兩點(diǎn)不同,從而實(shí)現(xiàn)了數(shù)據(jù)在CAN總線與RS-232接口之間的傳輸。在設(shè)計(jì)中由于使用了CAN總線進(jìn)行數(shù)據(jù)傳輸這就使得通信方式多主性。網(wǎng)絡(luò)上任意節(jié)點(diǎn)可以任意時(shí)刻主動(dòng)地向網(wǎng)絡(luò)上其他節(jié)點(diǎn)發(fā)送信息而不分主從??梢渣c(diǎn)對(duì)點(diǎn),點(diǎn)對(duì)多點(diǎn)或全局廣播方式發(fā)送和接收數(shù)據(jù)。

          參考文獻(xiàn):

          [1].RS-232datasheethttp://www.dzsc.com/datasheet/RS-232_584855.html.
          [2].datasheethttp://www.dzsc.com/datasheet/_810155.html.
          [3].X25045datasheethttp://www.dzsc.com/datasheet/X25045_722886.html.
          [4].MAX232datasheethttp://www.dzsc.com/datasheet/MAX232_1074207.html.
          [5].TTLdatasheethttp://www.dzsc.com/datasheet/TTL_1174409.html.
          [6].PCA82C250datasheethttp://www.dzsc.com/datasheet/PCA82C250_18.html.
          [7].SJA1000datasheethttp://www.dzsc.com/datasheet/SJA1000_609075.html.
          [8].TLP113datasheethttp://www.dzsc.com/datasheet/TLP113_652822.html.
          [9].ACRdatasheethttp://www.dzsc.com/datasheet/ACR_2278911.html.


          上一頁(yè) 1 2 3 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();