基于P89C668單片機的CAN總線接口設計
CAN(Controller Area Network)總線,又稱控制器局域網(wǎng),屬于現(xiàn)場總線的范疇,是一種有效支持分布式控制或實時控制的串行通信網(wǎng)絡.與其它幾種現(xiàn)場總線相比,CAN 總線是最容易實現(xiàn)、價格也最為低廉.由于其性能好,可靠性高、設計靈活,現(xiàn)已廣泛應用于工業(yè)現(xiàn)場控制、智能大廈、小區(qū)防范、交通工具、醫(yī)療儀器、環(huán)境監(jiān)控等眾多領域.
本文引用地址:http://www.ex-cimer.com/article/171887.htmCAN總線規(guī)范已被國際標準化組織(ISO)定為國際標準,CAN協(xié)議也是建立在國際標準化組織的開放系統(tǒng)互連參考模型(OSI)基礎上的.CAN總線主要工作在數(shù)據(jù)鏈路層和物理層,用戶可在其基礎上開發(fā)適合系統(tǒng)實際需要的應用層通信協(xié)議,由于CAN總線的可靠性高,使應用層通信協(xié)議得以大大簡化.目前市場上有多種不同型號的CAN控制器,它們實現(xiàn)CAN協(xié)議部分電路的結構和功能大多相同,只是與單片機接口部分的結構和方式有一些差異.
為了提高硬件電路的效率,簡化電路設計上的復雜性,保證電路的電氣兼容性,本文采用PHILIPS公司生產(chǎn)的P89C668單片機和CAN控制器SJA1000設計了CAN接口節(jié)點電路,并介紹了相關的軟件設計.
1 CAN總線節(jié)點接口硬件電路設計
CAN節(jié)點接口硬件電路原理如圖1所示.采用PHILIPS公司生產(chǎn)的P89C668單片機、CAN控制器SJA1000和CAN總線收發(fā)器PCA82C250設計接口電路來實現(xiàn)CAN總線通信.
圖1 CAN總線接點接口硬件電路原理
P89C668單片機內帶64kB Flash存儲器,該存儲器既可并行編程,在系統(tǒng)編程ISP中也可串行編程,在實際的成型產(chǎn)品中可通過ISP升級用戶程序. 在Boot ROM程序中,可通過一個默認的串行下載器(UART)對Flash存儲器作ISP編程,而在Flash代碼區(qū)中并不需要調用下載器的代碼,用戶程序可通過調用在Boot ROM中的標準子程序對Flash存儲器擦除和再編程(即IAP).
P89C688在6個時鐘周期內執(zhí)行一條指令,一個OTP位讓用戶可選擇傳統(tǒng)的12個時鐘周期.P89C688用先進CMOS工藝制造,是80C51單片機家族的衍生品,其指令集和80C51相同.該單片機有四個8位I/O口,三個16位定時器/事件計數(shù)器,多中斷源,四個優(yōu)先級,可嵌套中斷結構,一個增強型UART和片內振蕩器以及時序電路.P89C668新增特性使其成為一個功能強大的單片機,可為某些應用提供PWM、高速的I/O和加/減計數(shù).
SJA1000 是PHILIPS 公司生產(chǎn)的獨立CAN 通信控制器,它既支持CAN2.0A,又支持CAN2.0B,與PCA82C200 CAN 控制器兼容(BasicCAN),并可替代PCA82C200;增加了一種新的工作模式PeliCAN,使其支持具有很多新特性的CAN2.0B 協(xié)議;集成了CAN 協(xié)議的物理層和數(shù)據(jù)鏈路層功能,可完成對通信數(shù)據(jù)的成幀處理;具有多主結構、總線訪問優(yōu)先權、硬件濾波等特點.
PC82C250為CAN總線收發(fā)器,是CAN 控制器和物理總線的接口,提供對總線的驅動發(fā)送能力、對CAN控制器的差動發(fā)送能力和對CAN控制器的差動接收能力.它具有很強的抗瞬間干擾和保護總線的能力,以及三種不同的工作方式即高速、斜率控制和待機,如表1所示.總線上的某一個節(jié)點掉電不會影響總線,在40米內應用的速度可達1M baud,最多可掛110個節(jié)點.
從圖1 可看出,該硬件電路主要由單片機P89C668、CAN 獨立控制器SJA1000 和CAN 收發(fā)器PCA82C250 組成.
評論