基于單片機(jī)控制的CAN與RS-232轉(zhuǎn)換器的研究與設(shè)計(jì)
CAN(Controller Area Network)總線(xiàn)是德國(guó)BOSCH公司為解決現(xiàn)代汽車(chē)中眾多控制與測(cè)試之間的數(shù)據(jù)交換開(kāi)發(fā)的一種串行數(shù)據(jù)通信協(xié)議,是一種多主方式的串行通信總線(xiàn)。CAN總線(xiàn)是一種開(kāi)放式、數(shù)字化、多點(diǎn)通信的控制系統(tǒng)局域網(wǎng),具有通信速率高、傳輸時(shí)間短、傳輸距離遠(yuǎn)、糾錯(cuò)能力強(qiáng)、控制簡(jiǎn)單、擴(kuò)展能力強(qiáng)以及性?xún)r(jià)比高等特點(diǎn),是目前國(guó)際上應(yīng)用最廣泛的現(xiàn)場(chǎng)總線(xiàn)之一。
基于CAN總線(xiàn)的CAN控制器具有完成CAN總線(xiàn)通信協(xié)議所要求的全部必要功能,因此CAN控制器與其它微處理器的接口成為設(shè)計(jì)CAN總線(xiàn)系統(tǒng)的首要工作。實(shí)際中很多設(shè)備帶有RS-232接口,為了方便具有RS-232接口的設(shè)備與CAN總線(xiàn)的數(shù)據(jù)通信,本文完成了基于單片機(jī)控制的CAN總線(xiàn)與RS-232轉(zhuǎn)換器電路設(shè)計(jì)和軟件設(shè)計(jì),實(shí)現(xiàn)了CAN總線(xiàn)數(shù)據(jù)與RS-232接口設(shè)備的數(shù)據(jù)傳輸。
2.基于單片機(jī)控制的CAN總線(xiàn)與RS-232轉(zhuǎn)換器電路設(shè)計(jì)
CAN總線(xiàn)與RS-232轉(zhuǎn)換器電路包括:主控制模塊、RS-232接口轉(zhuǎn)換電路和CAN控制模塊3個(gè)主要部分。
主控制模塊的功能是處理CAN總線(xiàn)以及RS-232接口的數(shù)據(jù)通信和控制,本設(shè)計(jì)應(yīng)用AT89C51完成對(duì)轉(zhuǎn)換器各個(gè)接口的控制,實(shí)現(xiàn)CAN總線(xiàn)和RS-232接口兩種協(xié)議數(shù)據(jù)幀的轉(zhuǎn)換,使用帶有SPI總線(xiàn)接口的X25045實(shí)現(xiàn)硬件看門(mén)狗功能。主控模塊電路如圖1所示。
RS-232接口電路由MAX232芯片構(gòu)成,實(shí)現(xiàn)將單片機(jī)串口的TTL電平與RS-232電平的相互轉(zhuǎn)換,完成RS-232接口信息的輸入輸出傳輸。
CAN控制器模塊,主要完成CAN協(xié)議的物理層和數(shù)據(jù)鏈路層協(xié)議的實(shí)現(xiàn)。其中物理接口采用PCA82C250芯片實(shí)現(xiàn)物理層的電平轉(zhuǎn)換和傳輸。CAN控制器使用SJA1000芯片,完成數(shù)據(jù)鏈路層功能,實(shí)現(xiàn)CAN總線(xiàn)信息的輸入輸出傳輸。
AT89C51是CAN總線(xiàn)與RS-232轉(zhuǎn)換器的控制器,提供以下標(biāo)準(zhǔn)功能:4k字節(jié)Flash閃速存儲(chǔ)器,1000次可擦寫(xiě)周期,三級(jí)加密程序存儲(chǔ)器,128字節(jié)內(nèi)部RAM,32個(gè)I/O口線(xiàn),兩個(gè)16位定時(shí)/計(jì)數(shù)器,一個(gè)5向量中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電路。同時(shí),支持兩種軟件可選的節(jié)電工作模式??臻e方式停止CPU的工作,但允許RAM、定時(shí)/計(jì)數(shù)器、竄行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內(nèi)容,但振蕩器停止工作并禁止所有部件工作直到下一個(gè)硬件復(fù)位。
AT89C51使用的晶振信號(hào)由SJA1000提供(SJA1000用24MHz的片外晶振),SJA1000的CLKOUT引腳接入MCU的XTAL1引腳。
由于CAN總線(xiàn)速率與RS-232接口速率并不相同,因此本設(shè)計(jì)中增加了片外RAM芯片6116,用作轉(zhuǎn)換雙方的數(shù)據(jù)緩沖區(qū)。設(shè)計(jì)中使用P2.7接反向器連接6116的片選端,所以接口轉(zhuǎn)換電路中的片外RAM的起始地址實(shí)際上應(yīng)為0X8000。
2.1 AT89C51與RS-232轉(zhuǎn)換接口電路設(shè)計(jì)
應(yīng)用MAX232芯片構(gòu)成RS-232的接口轉(zhuǎn)換電路,實(shí)現(xiàn)AT89C51串口的TTL電平與RS-232電平的相互轉(zhuǎn)換。其中R1out和T1in引腳接單片機(jī)的RXD引腳和TXD引腳,R1in和T1out作為RS-232接口輸出連接標(biāo)準(zhǔn)DB9接口的引腳2和引腳3。DB9接口引腳5接地。為了使MAX232芯片正常工作,還需要外接4個(gè)1μF的電容用于芯片升壓,以完成電平轉(zhuǎn)換。
評(píng)論