CAN總線是一種有效支持分布式控制或?qū)崟r(shí)控制的串行通信網(wǎng)絡(luò),它可實(shí)現(xiàn)全分布式多機(jī)系統(tǒng),且無(wú)主、從之分;具有傳輸速度快、自動(dòng)解決總線競(jìng)爭(zhēng)、實(shí)時(shí)性好、可靠性高、糾錯(cuò)能力強(qiáng)等特點(diǎn),目前已成為一種國(guó)際總線標(biāo)準(zhǔn)。由于can總線具有諸多優(yōu)點(diǎn),它的應(yīng)用范圍遍及從高速網(wǎng)絡(luò)到低成本的多線路網(wǎng)絡(luò)。在自動(dòng)化電子領(lǐng)域的汽車(chē)發(fā)動(dòng)機(jī)控制部件、傳感器、抗滑系統(tǒng)、工業(yè)自動(dòng)化、建筑物環(huán)境控制、機(jī)床、電梯控制、醫(yī)療設(shè)備等領(lǐng)域得到了較為廣泛的應(yīng)用。
sja1000是一種獨(dú)立的can控制器,主要用于移動(dòng)目標(biāo)和一般工業(yè)環(huán)境中的區(qū)域網(wǎng)絡(luò)控制。它是philips半導(dǎo)體公司pca82c200can控制器(basiccan)的替代產(chǎn)品,而且它增加了一種新的操作模式——pelican,這種模式支持具有很多新特性的can2.0b協(xié)議。sja1000的基本特性以及電氣參數(shù)均與pca82c200獨(dú)立can控制器兼容,具有pca82c200模式(即默認(rèn)的basiccan模式),有擴(kuò)展的接收緩沖器64字節(jié),先進(jìn)先出(fifo),支持can2.0a和can2.0b協(xié)議,支持11位和29位標(biāo)識(shí)碼,通信位速率可達(dá)1mbps。
獨(dú)立的can控制器芯片需要外接一個(gè)處理器,接受外部cpu的控制才能運(yùn)行。如果處理器內(nèi)帶有can控制器,那么無(wú)疑會(huì)大大簡(jiǎn)化應(yīng)用系統(tǒng)的硬件設(shè)計(jì),系統(tǒng)的可靠性也會(huì)有很大的提高。所以出現(xiàn)了很多帶有can控制器的處理器,philips公司的p8xc591單片機(jī)就是其中的一種,它完全履行can2.0b規(guī)范,并提供一個(gè)直接從sja1000獨(dú)立can控制器的軟件移植路徑。
2兩種通信方式介紹
2.1獨(dú)立的can控制器sja1000通信方式
sja1000是一種獨(dú)立的can控制器,主要用于移動(dòng)目標(biāo)和一般工業(yè)環(huán)境中的區(qū)域網(wǎng)絡(luò)控制。它是philips公司pca82c200can控制器(basiccan)的替代產(chǎn)品,它在完全兼容pca82c200的基礎(chǔ)上,增加了一種新的工作模式pelican,sja1000完全支持具有很多新特性的can2.0b協(xié)議。sja1000的工作模式通過(guò)其內(nèi)部的時(shí)鐘分頻寄存器(cdr)中的can模式位來(lái)選擇,硬件復(fù)位時(shí)默認(rèn)模式是basiccan工作模式[1]。
sja1000可以支持多種微處理器的時(shí)序特性,如intel模式或motorola模式。sja1000與微處理器的接口非常簡(jiǎn)單,微處理器以訪問(wèn)外部存儲(chǔ)器的方式來(lái)訪問(wèn)sja1000,在設(shè)計(jì)接口電路時(shí),sja1000的片選地址應(yīng)與其他外部存儲(chǔ)器的片選地址在邏輯上無(wú)沖突。
sja1000有2種模式可以供微處理器訪問(wèn)其內(nèi)部寄存器,2種模式下的訪問(wèn)是有區(qū)別的,這2種模式分別是復(fù)位模式和工作模式,當(dāng)硬件復(fù)位、控制器掉線、置位請(qǐng)求位時(shí),sja1000進(jìn)入復(fù)位模式。當(dāng)清楚其內(nèi)部控制寄存器(cr)中的復(fù)位請(qǐng)求位時(shí),sja1000進(jìn)入工作模式,有些內(nèi)部的寄存器只能在復(fù)位模式下訪問(wèn),有些寄存器只能在工作模式下訪問(wèn),而有些寄存器在這2種模式下都可以訪問(wèn)。
2.2philips單片機(jī)p8xc591的通信方式
philips半導(dǎo)體公司的p8xc591是一個(gè)用先進(jìn)的coms工藝制造的高性能8位單片機(jī),具有片內(nèi)can控制器。它從mcs-51微控制器家族派生而來(lái),采用了強(qiáng)大的80c51指令集,并成功的包括了philips半導(dǎo)體sja1000,can控制器的pelican功能,提供了專(zhuān)用的硬件,其方框圖如圖1所示。全靜態(tài)內(nèi)核提供了擴(kuò)展的節(jié)電方式。振蕩器可停止和恢復(fù)而不會(huì)丟失數(shù)據(jù)。改進(jìn)的1:1內(nèi)部時(shí)鐘分頻器在12mhz外部時(shí)鐘速率時(shí)實(shí)現(xiàn)500ns指令周期[1]。
圖1p8xc591的方框圖