用AT89C52單片機實現(xiàn)RS422到CAN總線的轉(zhuǎn)換
引言
RS422是串行通訊中應用較廣的標準總線。他能很方便地把各種計算機、外部設備、測量儀器有機地連接起來,構(gòu)成一個測量、控制系統(tǒng)。但是,他傳輸速率低、傳輸距離短并且接口處信號間易產(chǎn)生串擾,因此不能直接應用于工業(yè)控制。
CAN總線剛好以其高性能、高可靠性及獨特的設計贏得了工業(yè)界的高度重視。例如,奔馳S型轎車上采用的就是CAN總線系統(tǒng),美國商用車輛制造商們也將注意力轉(zhuǎn)向了CAN總線,美國一些企業(yè)已將CAN作為內(nèi)部總線應用在生產(chǎn)線和機床上。同時,由于CAN總線可以提供較高的安全性,因此在醫(yī)療領(lǐng)域、紡織機械及電梯控制中也得到了廣泛應用??梢?,實現(xiàn)RS422總線和CAN總線之間的轉(zhuǎn)換非常有必要。
2硬件設計
2.1總體設計分析
在該系統(tǒng)中,采用AT89C52單片機。RS422總線傳輸過來的信號經(jīng)過收發(fā)器后進入89C52,處理后送到CAN控制器中,然后到收發(fā)器,最后由CAN出口發(fā)出。為了保證系統(tǒng)的安全工作,在CAN控制器上加了一個“看門狗”??傮w設計框圖如圖1所示。
2.2CAN控制器與CPU接口設計對于CPU來說,CAN控制器是確保雙方獨立工作的存貯器映象外圍設備。CAN控制器與外部CPU的接口是通過控制器接口邏輯(CIL)實現(xiàn)的, AT89C52 CPU通過將地址總線(AB)和數(shù)據(jù)總線(DB)連接到CIL上來完成與CAN控制器之間的信息交換,不需要專門的控制總線(CB),CPU與82C200之間的狀態(tài)、控制和命令信號的交換在CAN控制器中完成。
2.3電子看門狗設計
為了提高系統(tǒng)的抗干擾性能,采用X25045來做一個電子看門狗。X25045把3種常用的功能:看門狗定時器、電壓監(jiān)視和 E?2PROM組合在單個封裝之內(nèi)。這種組合降低了系統(tǒng)成本,并減少了對電路板空間的要求??撮T狗定時器對微控制器提供了獨立的保護系統(tǒng)。當系統(tǒng)出現(xiàn)故障時,在可選的超時周期( timeout interval )之后, X25045 看門狗將以 RESET 信號作出響應。
3軟件設計
CAN總線系統(tǒng)的初始化設計是軟件設計的關(guān)鍵,在初始化之前,應設置輸出控制寄存器(OCR)的復位請求位為高,再設置其他寄存器。命令寄存器(CMR)控制緩存器的收發(fā)狀態(tài);中斷寄存器(IR)、狀態(tài)寄存器(SR)查詢82C200的工作狀態(tài);接收碼寄存器(ACR)設定工作地址;接收屏蔽寄存器(AMR)設定工作形式;總線定時寄存器(BTR0、BTR1)設定工作頻率、采樣頻率;輸出控制寄存器(OCR)一般為正常輸出方式,最后應使復位請求位從高變低,使CAN控制器進入正常工作狀態(tài)。主程序框圖如圖2。
3.2轉(zhuǎn)換主程序設計如下:
結(jié)語
CAN總線以其高性能、高可靠性及其獨特的設計越來越受到人們的重視,并被公認為最有前途的總線之一。把RS422轉(zhuǎn)換到CAN正是適應了這一趨勢,期望有更多的智能電子產(chǎn)品設計者加入到這一領(lǐng)域的應用研究中來。