楊鵬飛
山東沂水縣供電公司 山東 沂水 276400
現(xiàn)場總線是用做現(xiàn)場控制系統(tǒng)的、直接與所有受控(設(shè)備)節(jié)點(diǎn)相連的,全數(shù)字化、雙向、多站點(diǎn)的串行通信網(wǎng)絡(luò)。控制器局域網(wǎng)CAN(Controller Area Network)是現(xiàn)場總線的一種,是在1986年的SAE(汽車工程人員協(xié)會)大會上由Rober Bosch公司提出的。CAN是一個(gè)多主總線網(wǎng)絡(luò),可實(shí)現(xiàn)全分布式多機(jī)系統(tǒng),網(wǎng)絡(luò)各節(jié)點(diǎn)均可在任意時(shí)刻向其他節(jié)點(diǎn)發(fā)送信息,通信介質(zhì)可以是雙絞線、同軸電纜或光纖;直接通信距離最遠(yuǎn)可達(dá)10km(速率5kbps以下),通信速率最高可達(dá)1Mbps(距離不大于40m);網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)可達(dá)110個(gè);在報(bào)文標(biāo)識符上,CAN上的節(jié)點(diǎn)分成不同的優(yōu)先級,可滿足不同的實(shí)時(shí)要求,優(yōu)先級高的數(shù)據(jù)最多可在134us內(nèi)得到傳輸;通過對報(bào)文標(biāo)識符的濾波即可實(shí)現(xiàn)點(diǎn)對點(diǎn)、一點(diǎn)對多點(diǎn)及全局廣播發(fā)送接受數(shù)據(jù);采用非破壞總線仲裁技術(shù),當(dāng)兩個(gè)節(jié)點(diǎn)同時(shí)向網(wǎng)上發(fā)送信息時(shí),優(yōu)先級低的節(jié)點(diǎn)主動停止發(fā)送數(shù)據(jù);支持4種報(bào)文幀即數(shù)據(jù)幀、遠(yuǎn)程幀、出錯(cuò)幀、超載幀,采用短幀結(jié)構(gòu),傳送時(shí)間短、受干擾概率低;采用CRC校驗(yàn)及其他校驗(yàn)措施,保證了極低的信息出錯(cuò)率;具有自動關(guān)閉功能,當(dāng)節(jié)點(diǎn)錯(cuò)誤嚴(yán)重時(shí),自動切斷與總線的聯(lián)系,不影響系統(tǒng)的工作。
CAN總線系統(tǒng)中共有兩種類型的節(jié)點(diǎn):不帶微控制器的非智能節(jié)點(diǎn)和帶微控制器的智能節(jié)點(diǎn)。智能節(jié)點(diǎn)的設(shè)計(jì)也可劃分為兩種類型:1)微控制器外加CAN總線控制器方式,此方式的主要特點(diǎn)是系統(tǒng)構(gòu)建靈活,微控制器的選型隨意,可選8位、16位也可選32位控制器,即可選常用的也可選新推出的,目前國內(nèi)常用的CAN總線控制器主要是SJA1000;2)內(nèi)嵌有CAN總線控制器的微控制器,此方式的主要特點(diǎn)是系統(tǒng)穩(wěn)定,抗干擾能力強(qiáng),缺點(diǎn)是系統(tǒng)靈活性差,目前國內(nèi)常見的有P8Xc591、TMS240xDSP等。
本文將介紹利用美國Cygnal集成產(chǎn)品公司新推出的帶CAN總線控制器的高速、高性能混合信號處理微機(jī)C8051F040實(shí)現(xiàn)的CAN總線智能節(jié)點(diǎn)軟硬件設(shè)計(jì)。
C8051Fxxx系列微機(jī)是集成在一塊芯片上的混合信號系統(tǒng)級微機(jī),其內(nèi)核是與MCS-51指令集完全兼容的、采用流水線結(jié)構(gòu)的CIP-51微控制器內(nèi)核,在最大系統(tǒng)時(shí)鐘頻率25MHz時(shí)其峰值速度可達(dá)25MIPS。以下是C8051F040微機(jī)片上資源及其特點(diǎn):
①1個(gè)12 Bit 100ksps、8通道帶片內(nèi)溫度傳感器、可編程增益放大器的ADC,1個(gè)8 Bit 500 ksps帶可編程增益放大器的ADC,2個(gè)可程控更新的12 Bit DAC;
②具有6個(gè)捕捉/比較模塊的可編程計(jì)數(shù)/定時(shí)器陣列;
③4352 Bytes片內(nèi)RAM,64KB在系統(tǒng)可編程FLASH存儲器,可外擴(kuò)64KB的存儲器接口;
④耐5V電壓的64位數(shù)字I/O;
⑤20個(gè)中斷源;
⑥Bosh CAN、SMBusTM、SPITM、2個(gè)UART;
⑦5個(gè)通用16Bit定時(shí)器/計(jì)數(shù)器,片內(nèi)看門狗定時(shí)器、VDD監(jiān)視器;
⑧供電電源2.7V~3.6V;
⑨支持非侵入式、全速、在系統(tǒng)調(diào)試和邊界掃描功能。
可以說C8051F040微機(jī)是真正的、可單獨(dú)工作的、完整的SoC(System on Chip)。片上所有的數(shù)字和模擬外設(shè)與交叉開關(guān)相連,完全由用戶設(shè)置。片內(nèi)JTAG調(diào)試系統(tǒng)支持觀察和修改存儲器和寄存器、支持?jǐn)帱c(diǎn)、觀察點(diǎn)、單步及運(yùn)行和停機(jī)命令。
C8051F040片內(nèi)集成的CAN總線控制器是Bosh CAN控制器,支持CAN協(xié)議CAN 2.0A和CAN 2.0B。C_CAN由CAN核心模塊、報(bào)文RAM(Message RAM)、報(bào)文句柄狀態(tài)機(jī)和控制寄存器組成。C8051F040片內(nèi)沒有CAN總線驅(qū)動器。其結(jié)構(gòu)如圖1所示:
圖1 CAN控制器
C_CAN的特點(diǎn)如下:
1)支持CAN協(xié)議CAN 2.0 A和CAN 2.0B;
2)位速率可達(dá)1 MBit/s;
3)可存儲32條報(bào)文;
4)可編程的FIFO模式;
5)可編程的自檢操作和回環(huán)模式;
6)可程控的自動重發(fā)功能;
CAN控制器的工作是在一系列的寄存器的控制下進(jìn)行的,其工作狀態(tài)也由相關(guān)寄存器來反映??刂萍拇嫫?, 如CAN0CN、CAN0STA、CAN0TST等,用來配置CAN控制器,產(chǎn)生中斷,監(jiān)視總線狀態(tài)等;報(bào)文句柄寄存器是只讀的,它負(fù)責(zé)向處理器提供報(bào)文的相關(guān)信息,如報(bào)文有效性、發(fā)送請求、中斷狀態(tài)等;報(bào)文單元接口寄存器用來配置RAM中的報(bào)文單元,并與RAM中的報(bào)文單元和處理器交換數(shù)據(jù),它們避免了處理器直接讀RAM單元時(shí),RAM還要發(fā)送或接受數(shù)據(jù)所導(dǎo)致的沖突,起到了緩沖作用。C8051F040中的CAN控制器是作為外設(shè)的,它的寄存 器 除 了 CAN0CN、CAN0STA、CAN0TST 都 不 是SFR。對它們的訪問要通過SFR:CAN0ADR、CAN0DATH、CAN0DATL。CAN0ADDR寫入要訪問的寄存器的偏移量,CAN0DATL(或加CAN0DATH組成16位二進(jìn)制數(shù))與待訪問的寄存器進(jìn)行數(shù)據(jù)交換。
由于C8051F040片內(nèi)沒有CAN驅(qū)動器,筆者選擇了TEXAS公司與C8051F040供電電壓一致的3.3V的CAN驅(qū)動器SN65HVD230。SN65HVD230具有速度高達(dá)1Mbps的差分發(fā)送、差分接收能力,提供三種工作模式:高速、低電流待機(jī)、斜率控制。自身具有短路保護(hù)、失地保護(hù)、過壓保護(hù)和過熱保護(hù)。常態(tài)下工作電壓是-2V~7V,瞬時(shí)耐壓范圍是-25V~25V。SN65HVD230的第8腳經(jīng)10K電阻與P15相聯(lián)可以選擇SN65HVD230的工作模式,P15置0時(shí)選擇高速工作模式,P15置1時(shí)選擇低電流待機(jī)模式。SN65HVD230與CAN總線的接口部分采用了一定的安全和抗干擾措施。與CANH、CANL串連的5Ω電阻可起到一定的限流作用;并聯(lián)在CANH、CANL和地之間的32pF的小電容,可以起到濾出總線上的高頻干擾和一定的防電磁輻射的能力;在CAN總線的輸入端與地之間所接的防雷擊管,可以通過它們的放電起到消除CAN總線輸入端和地之間的瞬變干擾作用。C8051Fxxx系列微機(jī)的JTAG接口的PCB封裝是IDC10。按照C8051F040技術(shù)資料,在晶振的兩端并聯(lián)了10MΩ的電阻。如上所述,由于C8051Fxxx系列微機(jī)具有豐富的片內(nèi)資源,基本上滿足了傳統(tǒng)微機(jī)測控系統(tǒng)的需要,擴(kuò)展的要求小?;诖祟愇C(jī)的測控系統(tǒng),體積輕巧,性能穩(wěn)定,抗干擾能力強(qiáng)。圖2是CAN總線原理圖。
圖2 CAN總線原理圖
系統(tǒng)軟件是在Cygnal公司提供的開發(fā)環(huán)境Cynal IDE 1.72下利用C語言開發(fā)的。Cynal IDE以標(biāo)準(zhǔn)的Windows作為界面,支持C語言和匯編語言的源程序級調(diào)試。IDE在硬件上使用PC的串行口與具有JTAG的C8051F040微機(jī)目標(biāo)系統(tǒng)相連的支持下,可進(jìn)行非插入式、全速地在線調(diào)試和在系統(tǒng)編程,不需要另外的目標(biāo)RAM、程序存儲器或占用其他的通信信道即可實(shí)現(xiàn)程序調(diào)試。
在C_CAN中,報(bào)文的控制由報(bào)文接口寄存器(Message Interface Register)來管理。 C_CAN的一條數(shù)據(jù)幀最多可發(fā)送8Bytes的數(shù)據(jù),對于整塊大批量的數(shù)據(jù)接收就需要使用緩沖(FIFO Buffer)。在此寫出了讀取FIFO緩沖區(qū)的流程圖和利用SFR配置一個(gè)發(fā)送報(bào)文單元的例程。
圖3 C_CAN FIFO緩沖區(qū)的讀取圖
以下是配置發(fā)送報(bào)文單元的例程:
目前,傳統(tǒng)微機(jī)由于速度低、功耗高、功能少,越來越受到冷落。以C8051Fxxx為代表的新一代微機(jī)采用了一系列的新技術(shù),功耗低,性能穩(wěn)定,處理速度也較大幅度提高,片內(nèi)集成的外設(shè)越來越多,已逐步開始取代以往微機(jī)。本文提出的包括CAN總線在內(nèi)的基于C8051F040微機(jī)數(shù)據(jù)測控系統(tǒng)工作穩(wěn)定可靠,達(dá)到了技術(shù)指標(biāo)要求,而且此系統(tǒng)具有很強(qiáng)的擴(kuò)展能力。
[1]饒運(yùn)濤等.現(xiàn)場總線CAN原理與應(yīng)用技術(shù)[M].北京:北京航空航天大學(xué)出版社,2003.
[2]李剛,林凌.與8051兼容的高性能、高速微機(jī)-C805Fxxx[M].北京:北京航空航天大學(xué)出版社,2002.
[3]USA:CYGNAL Integrated Products.Inc.,DS005_0.9APR02.,2002.
[4]USA:Robert Bosch GmbH,C_CAN User’s Manual Revision 1.2,2000.
山東電力高等??茖W(xué)校學(xué)報(bào)2011年3期