基于ARM和CAN總線的煤矸石分選系統(tǒng)
EPM7128用來完成接口間信號的轉(zhuǎn)換與配置,EPM7128的輸入來自AT91M40800的片選信號NCS2,數(shù)據(jù)線D0~D7,地址A0~A1,讀信號NRD,寫信號NWE和系統(tǒng)復(fù)位信號RST,經(jīng)過內(nèi)部的邏輯綜合處理,產(chǎn)生SJA1000所需的功能信號。根據(jù)各芯片信號線的要求及端口地址的分配,可以寫出CAN總線收發(fā)器的輸入/輸出邏輯關(guān)系表達(dá)式如下:
CAN=NCS2·A0
CANALE=NCS2?A0?(NRD+NWE)
CANRD=NRD
CANWR=NWE
CANRST=NCS2+RST
選定SJA1000的地址端口為400000H,數(shù)據(jù)端口的地址為400001H和復(fù)位端口地址為400002H。由于CAN控制器SJA1000的地址數(shù)據(jù)是復(fù)用的,通過ALE信號下降沿可以鎖存總線上的地址信號。但是AT91M40800的地址總線和數(shù)據(jù)總線是單獨(dú)提供的,不能直接與SJA1000的地址數(shù)據(jù)總線相連。所以要解決SJA1000與AT91M40800的接口問題,關(guān)鍵在于如何將訪問SJA1000所需的信號送入其中。這里采用的辦法是分兩次I/O操作完成,第一次往地址端口400000H送入地址值作為SJA1000的單元地址。此時,片選沒有選通,數(shù)據(jù)鎖存在AD0~AD7總線上。第二次訪問數(shù)據(jù)端口400001H時,SJA1000被選中,在ALE信號作用下將第一次的地址值寫入SJA1000,CPU對SJA1000進(jìn)行讀/寫操作。復(fù)位可以分為系統(tǒng)復(fù)位和程序復(fù)位兩種。系統(tǒng)復(fù)位信號RST和程序復(fù)位信號在EPM7128中進(jìn)行邏輯或操作,兩者之一有效均可使SJA1000可靠的復(fù)位。
為了保證數(shù)據(jù)通信的可靠性,在CAN總線終端各連接一個120Ω的終端反射電阻,進(jìn)行總線阻抗匹配。SJA1000的TX1引腳通過10k8的電阻接地,RX1引腳電平必須維持在0.5Vcc以上。否則,不能形成CAN總線所需的邏輯電平。如果通信距離較近,環(huán)境干擾較小,可以不采用光電隔離電路6N137,這時,可以將82C251的VREF直接與RX1引腳相連,從而簡化了電路。
ARM微控制器與CAN總線的數(shù)據(jù)通信
AT91M40800通過外部總線接口(EBI)產(chǎn)生訪問片外存儲器和外部器件的信號,EBI支持不同的訪問協(xié)議,可實(shí)現(xiàn)對外部器件的單周期訪問,設(shè)計(jì)中EBI的設(shè)置為:(1)選擇8位數(shù)據(jù)總線 ;(2)選擇標(biāo)準(zhǔn)讀協(xié)議 ;(3)選擇8個周期的等待時間 ;(4)片選線NCS2的基地址為400000H。所有程序均采用AT91庫的C語言編寫,它具有可讀性強(qiáng)、容易移植、開發(fā)簡單、調(diào)試方便等優(yōu)點(diǎn)。正確的初始化是程序正常運(yùn)行的基礎(chǔ),系統(tǒng)的初始化主要是AT91M40800微處理器和SJA1000的初始化(SJA1000工作晶振16M),初始化流程如圖3所示。
圖3 通信軟件初始化流程圖
結(jié)論
采用ARM微控制器的AT91M40800芯片和CAN總線控制器SJA1000構(gòu)成的煤矸石在線識別與自動分選系統(tǒng),跟傳統(tǒng)的MCU作為控制的CAN總線網(wǎng)絡(luò)相比,是一種新穎的CAN總線網(wǎng)絡(luò)系統(tǒng)?;?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/ARM">ARM微控制器的嵌入式系統(tǒng)與CAN總線的處理系統(tǒng)具有良好的實(shí)時性、可靠性和靈活性,為落后的選煤技術(shù)提供了一種新方法。
評論