嵌入式CAN總線(xiàn)系統(tǒng)電路設(shè)計(jì)詳解 —電路圖天天讀(115)
CAN(Controller Area Network)總線(xiàn)即控制器局域網(wǎng)絡(luò),是現(xiàn)場(chǎng)總線(xiàn)之一,由德國(guó)Bosch公司為汽車(chē)的監(jiān)測(cè)、控制系統(tǒng)而設(shè)計(jì)的總線(xiàn)式串行通訊網(wǎng)絡(luò),適合于工業(yè)過(guò)程控制設(shè)備和監(jiān)控設(shè)備之間的互聯(lián)。是一種多主方式的串行通訊總線(xiàn),基本設(shè)計(jì)規(guī)范要求有高的位速率,高抗電磁干擾性,而且能夠檢測(cè)出產(chǎn)生的任何錯(cuò)誤。主要應(yīng)用于汽車(chē)電控制系統(tǒng)、電梯控制系統(tǒng)、安全監(jiān)控系統(tǒng)、醫(yī)療儀器、紡織機(jī)械、船舶運(yùn)輸?shù)确矫?。CAN具有下下列主要特性:①低成本;②遠(yuǎn)距離傳輸(長(zhǎng)達(dá)lOKm);③高速的數(shù)據(jù)傳輸速率(高達(dá) 1Mbit/s);④可根據(jù)報(bào)文的ID決定接收或屏蔽該報(bào)文;⑤可靠的錯(cuò)誤處理和檢錯(cuò)機(jī)制;⑥發(fā)送的信息遭到破壞后,可自動(dòng)重發(fā);⑦節(jié)點(diǎn)在錯(cuò)誤嚴(yán)重的情況下具有自動(dòng)退出總線(xiàn)的功能。
本文引用地址:http://www.ex-cimer.com/article/201710/369260.htm嵌入式系統(tǒng)的CAN接口電路
基于arm7架構(gòu)嵌入式系統(tǒng)的CAN接口硬件模塊包括Samsung公司的嵌入式微處理器S3C44BOX和Philips公司的CAN控制器芯片SJAl000和CAN總線(xiàn)收發(fā)器PCA82C250。8KB Cache、 Samsung S3C44BOX微處理器是三星公司專(zhuān)為手持設(shè)備和一般應(yīng)用提供的高性?xún)r(jià)比和高性能的微控制器解決方案,它使用arm7TDMI CPU核,工作在66MHZ。為了降低系統(tǒng)總成本和減少外圍器件,這款芯片中還集成了下列部件:外部存儲(chǔ)器控制器、LCD控制器、4個(gè)DMA通道、2通道異步UART單元、1個(gè)同步串行口(SIO)、1個(gè)多主12C總線(xiàn)控制器、1個(gè)I Is總線(xiàn)控制器,5通道PWM定時(shí)器及一個(gè)內(nèi)部定時(shí)器、71個(gè)通用I/O口、8個(gè)外部中斷源、實(shí)時(shí)時(shí)鐘、8通道10位ADC等。
CAN總線(xiàn)控制器
CAN總線(xiàn)控制器選用Philips公司的SJAl000。 SJAl000是一款獨(dú)立的控制器,用于汽車(chē)和一般工業(yè)環(huán)境中的控制器局域網(wǎng)絡(luò)(CAN)。它是PHILIPS半導(dǎo)體PCA82C200 CAN控制器(BasicCAN)的替代產(chǎn)品。而且,它增加了一種新的工作模式(PeliCAN),這種模式支持具有很多新特性的CAN2.0B協(xié)議。SJA1000是新一代CAN控制器,有如下特點(diǎn):①和PCA82C200獨(dú)立CAN控制器引腳兼容及電氣兼容;②SJA1000有兩種工作模式:基本CAN模式(BASIC CAN)和增強(qiáng)CAN模式(PELI CAN),支持CAN2.0A/B協(xié)議;③同時(shí)支持11位和29位ID,位速率可達(dá)1M,具有總線(xiàn)仲裁功能;④擴(kuò)展的接收緩沖器(64字節(jié)、先進(jìn)先出FIFO),增強(qiáng)的環(huán)境溫度范圍(-40-+125℃);⑤檢錯(cuò)和糾錯(cuò)能力加強(qiáng);⑥支持帶電插拔。
SJA1000方框圖如圖1所示。其中接口管理邏輯IML負(fù)責(zé)連接外部主控制器,該控制器可以是微型控制器或其它任何控制器。接口管理邏輯IML接收來(lái)自微控制器的命令,分配控制信息緩存器發(fā)送緩存器TBF、接收緩存器RBF0和RBF1,并為微控制器提供中斷和狀態(tài)信息。發(fā)送緩存器TBF由10個(gè)字節(jié)存貯單元組成,存貯由微控制器寫(xiě),將被發(fā)送至CAN總線(xiàn)網(wǎng)絡(luò)的報(bào)文。接收緩存器0和1(RBF0、 RBF1)均由10個(gè)字節(jié)組成,交替存貯從總線(xiàn)接收的報(bào)文,當(dāng)一個(gè)緩存器分配給CPU,位流處理器可以對(duì)另一個(gè)進(jìn)行寫(xiě)操作。位流處理器是一個(gè)控制發(fā)送緩存器和接收緩存器(并行數(shù)據(jù))與CAN總線(xiàn)(串行數(shù)據(jù))之間數(shù)據(jù)流的序列發(fā)生器。位定時(shí)邏輯將SJA1000同步于CAN總線(xiàn)上的位流。驗(yàn)收濾波器支持11 位和29位標(biāo)識(shí)符的濾波,所有收到的報(bào)文由驗(yàn)收濾波器驗(yàn)收并存儲(chǔ)在接收FIFO。錯(cuò)誤管理邏輯按照CAN協(xié)議完成錯(cuò)誤界定。
CAN總線(xiàn)收發(fā)器
CAN總線(xiàn)收發(fā)器選用Philips公司PCA82C250產(chǎn)品。CAN總線(xiàn)收發(fā)器是CAN協(xié)議控制器和物理總線(xiàn)之間的接口,該器件對(duì)總線(xiàn)提供差動(dòng)發(fā)送能力并對(duì)CAN控制器提供差動(dòng)接收能力,有很強(qiáng)的抗電磁干擾(EMI)的能力,至少可掛110個(gè)節(jié)點(diǎn)。
嵌入式系統(tǒng)的CAN接口電路
圖2是嵌入式微處理器S3C44BOX的CAN接口電路圖。如圖所示,ARM和SJA1000以總線(xiàn)方式連接,由于ARM信號(hào)為3.3伏,而CAN總線(xiàn)控制器電平為5伏,所以所有信號(hào)之間均需要電平轉(zhuǎn)換,本例中使用了QS34X245作為電平轉(zhuǎn)換芯片。 QS34X245為80引腳的雙例直插芯片,它既有電平轉(zhuǎn)換功能(5V變到3.3V),又是一個(gè)總線(xiàn)開(kāi)關(guān)和隔離器件。QS34X245內(nèi)提供一組32位高速CMOS兼容的總線(xiàn)開(kāi)關(guān),當(dāng)輸出使能端OEn(n為1~4)為低電平時(shí),開(kāi)關(guān)通,連能總線(xiàn)A和總線(xiàn)B;當(dāng)輸出使能端OEn為高電平時(shí),則開(kāi)關(guān)斷開(kāi),總線(xiàn) A和總線(xiàn)B隔離。OE1控制總線(xiàn)A和總線(xiàn)B的低8位(即A7~A0和B7~B0),OE2控制A15~A8和B15~B8,OE3控制A23~A16和 B23~B16,OE4控制A31~A24和B31~B24。由于ARM總線(xiàn)非復(fù)用,而SJA1000總線(xiàn)復(fù)用,所以必須通過(guò)邏輯產(chǎn)生地址鎖存信號(hào) ALE,在本例中該信號(hào)由芯片GAL22V10產(chǎn)生。SJA1000的片選、讀寫(xiě)信號(hào)均采用arm總線(xiàn)信號(hào),ALE信號(hào)由讀寫(xiě)信號(hào)和地址信號(hào)通過(guò)GAL產(chǎn)生。在寫(xiě)SJA1000寄存器時(shí),首先往總線(xiàn)的一個(gè)地址寫(xiě)數(shù)據(jù),作為地址,讀寫(xiě)信號(hào)無(wú)效,ALE變化產(chǎn)生鎖存信號(hào);然后寫(xiě)另外一個(gè)地址,讀寫(xiě)信號(hào)有效,作為數(shù)據(jù)。上述邏輯完全通過(guò)GAL產(chǎn)生。此外,CAN總線(xiàn)需要在兩線(xiàn)問(wèn)加一個(gè)120歐電阻。
控制CAN總線(xiàn)時(shí)首先初始化各寄存器,以設(shè)定通信參數(shù)(如:模式、位速率、驗(yàn)收碼、屏蔽碼、字段長(zhǎng)、總線(xiàn)定時(shí)、輸出模式等),BASIC CAN方式控制段共10個(gè)字節(jié)。發(fā)送數(shù)據(jù)時(shí)首先置位命令寄存器,然后將被發(fā)送的報(bào)文寫(xiě)入發(fā)送緩沖區(qū),最后置位請(qǐng)求發(fā)送,由 SJAl000完成發(fā)送。接收通過(guò)查詢(xún)狀態(tài)寄存器,讀取接收緩沖區(qū)獲得信息,然后釋放接收緩沖器。
評(píng)論