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