0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

CAN總線與RS-232接口設(shè)備的數(shù)據(jù)傳輸電路設(shè)計(jì)

電子設(shè)計(jì) ? 來源:網(wǎng)絡(luò)整理 ? 作者:佚名 ? 2020-02-06 07:02 ? 次閱讀

CAN(Controller Area Network)總線是德國BOSCH公司為解決現(xiàn)代汽車中眾多控制與測試之間的數(shù)據(jù)交換開發(fā)的一種串行數(shù)據(jù)通信協(xié)議,是一種多主方式的串行通信總線。CAN總線是一種開放式、數(shù)字化、多點(diǎn)通信的控制系統(tǒng)局域網(wǎng),具有通信速率高、傳輸時(shí)間短、傳輸距離遠(yuǎn)、糾錯(cuò)能力強(qiáng)、控制簡單、擴(kuò)展能力強(qiáng)以及性價(jià)比高等特點(diǎn),是目前國際上應(yīng)用最廣泛的現(xiàn)場總線之一。但是目前PC機(jī)普遍配置RS232串行通信接口,沒有CAN總線接口。實(shí)際中很多設(shè)備帶有RS-232接口沒有CAN總線接口,為了方便具有RS-232接口的設(shè)備與CAN總線的數(shù)據(jù)通信,本文完成了基于單片機(jī)ATMega16控制的CAN總線與RS-232轉(zhuǎn)換器電路設(shè)計(jì)和軟件設(shè)計(jì),實(shí)現(xiàn)了CAN總線數(shù)據(jù)與RS-232接口設(shè)備的數(shù)據(jù)傳輸。

一、簡述CAN總線與RS232協(xié)議

CAN作為一種多主方式的串行通訊總線,其基本設(shè)計(jì)規(guī)范要求高位速率和較高的抗電磁干擾性能,而且要能夠檢測出通訊總線上產(chǎn)生的任何錯(cuò)誤。當(dāng)信號(hào)傳輸距離達(dá)10km時(shí),CAN仍可提供高達(dá)5kbit/s的數(shù)據(jù)傳輸速率。表1為CAN總線上任意兩個(gè)節(jié)點(diǎn)之間最大傳輸距離

與其位速率之間的對(duì)應(yīng)關(guān)系。

由此可見,無論從實(shí)時(shí)性、適應(yīng)性、靈活性,還是可靠性上來看,CAN總線都是一種比較優(yōu)秀的串行總線。當(dāng)兩臺(tái)串口設(shè)備的相距較遠(yuǎn),不能直接用RS-232把它們連接起來時(shí),就可以把RS-232轉(zhuǎn)換為CAN,通過CAN總線來實(shí)現(xiàn)串口設(shè)備的網(wǎng)絡(luò)互連。

CAN總線與RS-232接口設(shè)備的數(shù)據(jù)傳輸電路設(shè)計(jì)

表1 CAN總線系統(tǒng)任意兩節(jié)鼎足之勢之間的最大距離

RS-232和CAN在電平和幀格式上都是很大的不同。具體表現(xiàn)如下:RS-232標(biāo)準(zhǔn)電平±(3V~15V)之間。而CAN信號(hào)則使用差分電壓傳送,兩條信號(hào)線稱為“CAN_H”和“CAM_L”,靜態(tài)時(shí)均為2.5V左右;RS-232串口的幀格式為:一位起始位,八位數(shù)據(jù)位,一位可編程的第九位,一位停止位。而CAN的數(shù)據(jù)幀格式為:幀信息+ID+數(shù)據(jù)。

二、CAN總線轉(zhuǎn)RS232總體設(shè)計(jì)

CAN總線轉(zhuǎn)2 3 2 的接口硬件電路, 主要選用MAX232、ATMega16、SJAl000和MCP2551設(shè)計(jì)實(shí)現(xiàn)。

其原理框圖如圖1所示。

CAN總線與RS-232接口設(shè)備的數(shù)據(jù)傳輸電路設(shè)計(jì)

三、轉(zhuǎn)換器硬件設(shè)計(jì)

3.1 主控制器設(shè)計(jì)

主控制器選擇ATMEL公司的ATMega16作為主處理器,該芯片是一個(gè)低電壓,高性能單片機(jī),片內(nèi)含可反復(fù)擦寫的EEPROM和隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)。

ATMega16有44個(gè)引腳,32個(gè)外部雙向I/0端口,同時(shí)內(nèi)含3個(gè)外中斷口,2個(gè)8位和1個(gè)16位可編程定時(shí)計(jì)數(shù)器,1個(gè)全雙工串行通信口,ATMega16可按常規(guī)方法進(jìn)行編程,也可在線編程。ATMega16的4腳接復(fù)位電路,低電平有效;9,10腳接MAX232的數(shù)據(jù)接收/發(fā)送端;PD口腳接SJAl000的控制端端;7,8腳接晶振電路;PB口接SJAl000的復(fù)用地址/數(shù)據(jù)總線。

3.2 MAx232電路設(shè)計(jì)

選擇MAX232芯片作為RS232與CAN總線的電平轉(zhuǎn)換器。MAX232是一種電平轉(zhuǎn)換驅(qū)動(dòng)器,提供TTL與RS232電平的轉(zhuǎn)換。其13、14腳接到232接口的2、3針;11、12腳接到單片機(jī)的接收、發(fā)送端。

3.3 CAN控制器電路設(shè)計(jì)

選用Phi l ip公司的SJAl000芯片實(shí)現(xiàn)CAN控制器和CAN總線驅(qū)動(dòng)器。SJAl000控制器與單片機(jī)硬件連接電路設(shè)計(jì),如圖2、3所示。

CAN總線與RS-232接口設(shè)備的數(shù)據(jù)傳輸電路設(shè)計(jì)

CAN總線與RS-232接口設(shè)備的數(shù)據(jù)傳輸電路設(shè)計(jì)

為使SJAl000正確復(fù)位,CAN控制器必須連接一個(gè)穩(wěn)定的振蕩器時(shí)鐘,這里選擇16MHz的晶振。

3.4收發(fā)器電路設(shè)計(jì)

收發(fā)器是協(xié)議控制器和物理傳輸線路之間的接口,這里由MCP2551實(shí)現(xiàn)。協(xié)議控制器通過串行數(shù)據(jù)輸出線(Tx)和串行數(shù)據(jù)輸入線(RX)連接到收發(fā)器,收發(fā)器通過有差動(dòng)發(fā)送和接收功能的兩個(gè)總線終端CANH和CANI。連接到總線電纜,實(shí)現(xiàn)CAN總線的數(shù)據(jù)通信。如圖4所示。

CAN總線與RS-232接口設(shè)備的數(shù)據(jù)傳輸電路設(shè)計(jì)

四、主程序設(shè)計(jì)

在微處理控制下,RS-232和CAN進(jìn)行數(shù)據(jù)交換時(shí),采用CAN查詢方式和串口發(fā)送可提高工作效率。其主程序流程圖如圖5所示。SJA1000的初始化在復(fù)位模式下才可以進(jìn)行,主要包括工作方式的設(shè)置、時(shí)鐘分頻和驗(yàn)收濾波寄存器的設(shè)置、波特率參數(shù)的設(shè)置以及中斷允許寄存器的設(shè)置等。數(shù)據(jù)能否準(zhǔn)確傳遞還取決于波特率和流量控制,這也是軟件設(shè)計(jì)時(shí)不可忽略的地方。

CAN總線與RS-232接口設(shè)備的數(shù)據(jù)傳輸電路設(shè)計(jì)

串口波特率采用9600 bit/s,系統(tǒng)上電初始化后CAN控制器查詢發(fā)送標(biāo)志位,一旦發(fā)送緩沖區(qū)空就發(fā)送數(shù)據(jù)。同時(shí)也檢測狀態(tài)寄存器的接收標(biāo)志位,當(dāng)有數(shù)據(jù)接收時(shí)讀取接收緩沖區(qū),然后判斷接收數(shù)據(jù)幀,當(dāng)接收幀為錯(cuò)誤幀就丟掉數(shù)據(jù)并將CAN控制器復(fù)位,如果數(shù)據(jù)幀是正確幀就將該幀打包成符合RS232協(xié)議的幀結(jié)構(gòu),通過串口發(fā)送出去。

五、結(jié)束語

本文采用ATMega16、SJAl000、MCP2551和MAX232,設(shè)計(jì)開發(fā)了CAN總線轉(zhuǎn)232的接口,完成了兩種協(xié)議的轉(zhuǎn)換,實(shí)現(xiàn)了CAN總線與RS232通信接口設(shè)備之間的通信。測試和實(shí)際使用表明該接口運(yùn)行穩(wěn)定、可靠,達(dá)到了設(shè)計(jì)要求。

責(zé)任編輯:gt


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 轉(zhuǎn)換器
    +關(guān)注

    關(guān)注

    27

    文章

    8574

    瀏覽量

    146535
  • CAN
    CAN
    +關(guān)注

    關(guān)注

    57

    文章

    2686

    瀏覽量

    462911
  • 總線
    +關(guān)注

    關(guān)注

    10

    文章

    2848

    瀏覽量

    87839
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    串口通信發(fā)展史 RS-232有哪些優(yōu)點(diǎn)

    定義了數(shù)據(jù)終端設(shè)備(DTE)和數(shù)據(jù)通信設(shè)備(DCE)間按位串行傳輸接口信息,合理安排了接口的電
    發(fā)表于 10-16 10:01

    USB數(shù)據(jù)傳輸接口電路設(shè)計(jì)

      USB數(shù)據(jù)傳輸接口電路設(shè)計(jì)  USB接口數(shù)據(jù)傳輸速度快、連接簡單、兼容性好等特點(diǎn)。汽車行駛記錄儀國家標(biāo)準(zhǔn)考慮到
    發(fā)表于 06-17 05:00

    怎樣去設(shè)計(jì)RS-485遠(yuǎn)距離通信接口數(shù)據(jù)傳輸接口

    本設(shè)計(jì)綜合實(shí)現(xiàn)了PC主機(jī)與DSP從機(jī)的RS-485遠(yuǎn)距離通信接口和DSP從機(jī)與CAN現(xiàn)場總線數(shù)據(jù)傳輸
    發(fā)表于 06-03 06:52

    通過RS485總線或者CAN總線的方式達(dá)到數(shù)據(jù)傳輸

    引言在一般的項(xiàng)目開發(fā)過程中,往往需要兩塊或以上單片機(jī)進(jìn)行通信完成數(shù)據(jù)傳輸,例如四旋翼無人機(jī)在飛行過程中無線傳輸數(shù)據(jù)回到地面站,治療儀器需要實(shí)時(shí)將患者和機(jī)器運(yùn)轉(zhuǎn)情況傳回上位機(jī)平臺(tái),糧倉溫控裝置需將各種傳感器通過
    發(fā)表于 08-23 09:01

    使用自動(dòng)選向控制的隔離式RS-232RS-485轉(zhuǎn)換器

    接口,而且本身極易受噪聲影響。它的總線最大長度被限定在20米(60英尺)左右。盡管允許進(jìn)行全雙工數(shù)據(jù)傳輸(通過一些單獨(dú)的信號(hào)導(dǎo)線同時(shí)發(fā)送和接收數(shù)據(jù)),但是
    發(fā)表于 11-23 07:05

    基于單片機(jī)的CANRS-232轉(zhuǎn)換器設(shè)計(jì)

    本文完成了基于單片機(jī)控制的CANRS-232 轉(zhuǎn)換器的研究與設(shè)計(jì),設(shè)計(jì)了AT89C51單片機(jī)對(duì)RS-232 接口CAN 模塊的控制,解
    發(fā)表于 08-31 11:45 ?62次下載

    RS-232轉(zhuǎn)CAN總線協(xié)議適配器的設(shè)計(jì)

    本文介紹一種設(shè)計(jì)RS-232 轉(zhuǎn)CAN 總線協(xié)議適配器的方法,采用STC89C51 作為微處理器,MCP2510 作為CAN 總線控制器。詳
    發(fā)表于 01-13 14:09 ?87次下載

    基于CAN總線RS-232串口設(shè)備遠(yuǎn)程通信

    基于CAN總線RS-232串口設(shè)備遠(yuǎn)程通信 闡述了CAN總線
    發(fā)表于 09-27 16:07 ?1424次閱讀
    基于<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>的<b class='flag-5'>RS-232</b>串口<b class='flag-5'>設(shè)備</b>遠(yuǎn)程通信

    RS-232 接口,RS-232 接口是什么意思

    RS-232 接口,RS-232 接口是什么意思 電纜長度限制 RS-232的最初標(biāo)準(zhǔn)建議將電纜長度限制在50 ft以內(nèi),對(duì)于≤20 00
    發(fā)表于 03-09 10:57 ?6.1w次閱讀

    RS-232接口實(shí)現(xiàn)串口數(shù)據(jù)傳輸的點(diǎn)對(duì)點(diǎn)通信設(shè)計(jì)

    單片機(jī)在控制本地的外圍期間時(shí),信息的交互是通過8位并行數(shù)據(jù)總線進(jìn)行的,但是在較大規(guī)模的現(xiàn)代控制系統(tǒng)中,單片機(jī)還需要控制遠(yuǎn)端的設(shè)備,可以利用單片機(jī)的串行通信模塊,在學(xué)習(xí)了RS-232串口
    發(fā)表于 03-03 15:19 ?3658次閱讀
    <b class='flag-5'>RS-232</b><b class='flag-5'>接口</b>實(shí)現(xiàn)串口<b class='flag-5'>數(shù)據(jù)傳輸</b>的點(diǎn)對(duì)點(diǎn)通信設(shè)計(jì)

    實(shí)現(xiàn)RS-232數(shù)據(jù)傳輸的一些工業(yè)用數(shù)據(jù)鏈路

    高達(dá)±13V的高信號(hào)擺幅,但RS-232仍然是一種非平衡或單端接口,而且本身極易受噪聲影響。它的總線最大長度被限定在20米(60英尺)左右。盡管允許進(jìn)行全雙工數(shù)據(jù)傳輸(通過一些單獨(dú)的信
    的頭像 發(fā)表于 11-23 10:54 ?1176次閱讀

    為惡劣的工業(yè)應(yīng)用設(shè)計(jì)可靠的隔離式RS-232數(shù)據(jù)接口

    工業(yè)和儀器儀表(I&I)應(yīng)用的一個(gè)關(guān)鍵要求是通過診斷端口檢查連接系統(tǒng)的可靠數(shù)據(jù)接口RS-232總線標(biāo)準(zhǔn)是I&I應(yīng)用中最古老,使用最廣泛的物理層總線
    的頭像 發(fā)表于 01-17 09:26 ?3309次閱讀
    為惡劣的工業(yè)應(yīng)用設(shè)計(jì)可靠的隔離式<b class='flag-5'>RS-232</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>接口</b>

    RS-232總線CAN-Modbus網(wǎng)絡(luò)的連接技術(shù)

    YC-CAN-RTU是一款用于CAN-Modbus現(xiàn)場總線RS-232總線RS-485
    發(fā)表于 10-15 10:30 ?1470次閱讀
    <b class='flag-5'>RS-232</b><b class='flag-5'>總線</b>與<b class='flag-5'>CAN</b>-Modbus網(wǎng)絡(luò)的連接技術(shù)

    RS232、RS485和CAN究竟能傳輸多遠(yuǎn)距離?

    RS-232/422/485和CAN總線是物聯(lián)網(wǎng)應(yīng)用中比較常見的通訊方式,可用于不同設(shè)備間進(jìn)行數(shù)據(jù)傳輸和通信。不同的通訊線具有不同的
    的頭像 發(fā)表于 12-15 08:20 ?2106次閱讀
    <b class='flag-5'>RS232</b>、<b class='flag-5'>RS</b>485和<b class='flag-5'>CAN</b>究竟能<b class='flag-5'>傳輸</b>多遠(yuǎn)距離?

    CAN轉(zhuǎn)RS-232網(wǎng)關(guān)的參數(shù)介紹

    波特率(Baud Rate):波特率是指數(shù)據(jù)傳輸的速率,表示每秒傳輸的位數(shù)。CAN總線RS-232總線
    的頭像 發(fā)表于 01-18 10:08 ?747次閱讀