摘要:該文針對(duì)一種新型智能化工程機(jī)械機(jī)群通訊與定位系統(tǒng),以基于32位嵌入式ARM微處理器的智能監(jiān)控器為核心,通過CAN現(xiàn)場總線將車載上的各個(gè)底層控制系統(tǒng)連接起來并通過擴(kuò)展GPRS無線通訊模塊的方式,構(gòu)建硬件總體框架和搭建軟件平臺(tái),具體說明其實(shí)現(xiàn)過程,達(dá)到了車載遠(yuǎn)程的實(shí)時(shí)監(jiān)控的目的。
關(guān)鍵詞:ARM;CAN總線;嵌入式系統(tǒng)
中圖分類號(hào):TN915.1文獻(xiàn)標(biāo)識(shí)號(hào):A文章編號(hào):1009-3044(2008)36-3015-03
Remote Monitoring System of Vehicle-mounted Based on Embedded Platform
TANG Yong-bo, FENG Juan
(Physical Science and Technology College, Yichun University, Yichun 336000, China)
Abstract: A new type of intelligent communication and positioning systems in construction machinery group is introduced in this paper, based on 32-bit ARM microprocessor with intelligent monitoring, through CAN fieldbus, the system is connected with other subsystems and communicates with long-distance monitoring center by the way of expanding GPRS wireless communication module, building overall framework of hardware structures and software platform, specifying the implementation process, arriving to remote real-time monitoring of vehicle-mounted.
Key words: ARM; CAN bus; embedded system
車載監(jiān)控系統(tǒng)是一種現(xiàn)代通信技術(shù)的高科技系統(tǒng),是工程機(jī)械監(jiān)控系統(tǒng)的中心。歐美等生產(chǎn)工程機(jī)械的發(fā)達(dá)國家早已開展了監(jiān)控和智能控制技術(shù)在工程機(jī)械中的應(yīng)用研究。目前,我國傳統(tǒng)的工程機(jī)械存在著控制能力弱、維護(hù)成本高、設(shè)備功能少等不足。本系統(tǒng)在監(jiān)控技術(shù)上有所突破,實(shí)現(xiàn)了租賃機(jī)械遠(yuǎn)程實(shí)時(shí)監(jiān)控,通過GPRS通信模塊遠(yuǎn)程監(jiān)測車載的狀況,在租賃機(jī)械發(fā)生故障時(shí)實(shí)現(xiàn)遠(yuǎn)程指導(dǎo)和合理調(diào)度。
1 遠(yuǎn)程監(jiān)控系統(tǒng)的功能要求和特點(diǎn)
遠(yuǎn)程監(jiān)控系統(tǒng)可以實(shí)時(shí)地對(duì)異地設(shè)備狀態(tài)進(jìn)行監(jiān)測,及時(shí)發(fā)出故障診斷及維修指導(dǎo),做出合理調(diào)度。系統(tǒng)由數(shù)據(jù)采集,遠(yuǎn)程傳輸,故障診斷三個(gè)部分構(gòu)成。數(shù)據(jù)采集通過前端單元控制模塊實(shí)現(xiàn)。遠(yuǎn)程傳輸通過GPRS模塊將所采集到的數(shù)據(jù)發(fā)送出去。遠(yuǎn)程GPRS無線控制終端主要完成對(duì)GPRS無線數(shù)據(jù)的收發(fā),以對(duì)現(xiàn)場所采集到的數(shù)據(jù)做相應(yīng)處理。遠(yuǎn)程故障診斷中心,對(duì)故障的診斷通過故障診斷模塊和各專家合作完成。故障診斷模塊是根據(jù)設(shè)備故障機(jī)理建立起來的一個(gè)數(shù)據(jù)庫,當(dāng)遠(yuǎn)程設(shè)備發(fā)出故障診斷請(qǐng)求時(shí),根據(jù)遠(yuǎn)程終端提供的各種故障信息及采集過來的設(shè)備狀態(tài)信息進(jìn)行分析,給出相應(yīng)的故障處理方式。
2 系統(tǒng)硬件結(jié)構(gòu)
2.1 系統(tǒng)總體框圖
基于嵌入式的車載遠(yuǎn)程監(jiān)控系統(tǒng)主要由三個(gè)部分組成:負(fù)責(zé)數(shù)據(jù)采集的前端單元控制模塊,具備GPRS終端的車載主控模塊,具有故障診斷的遠(yuǎn)程監(jiān)控模塊。總體結(jié)構(gòu)如圖1所示。前端單元控制模塊由各個(gè)底層單元控制系統(tǒng)組成,如安全監(jiān)控系統(tǒng)、電液比例控制系統(tǒng)等小系統(tǒng),它們彼此獨(dú)立,分別對(duì)工程機(jī)械的車況,工礦數(shù)據(jù)通過傳感器進(jìn)行采集,又通過CAN總線彼此進(jìn)行通信,互傳數(shù)據(jù),受上層車載主控模塊的監(jiān)測與控制。車載主控模塊主要查看前端各個(gè)系統(tǒng)實(shí)時(shí)狀態(tài)及故障,報(bào)警信息,同時(shí)對(duì)各種狀態(tài)進(jìn)行分析處理,并通過GPRS和遠(yuǎn)程技術(shù)支持中心實(shí)現(xiàn)通信。遠(yuǎn)程監(jiān)控系統(tǒng)通過GPRS通信模塊監(jiān)測車載的狀況,發(fā)生故障時(shí)實(shí)現(xiàn)遠(yuǎn)程故障診斷,對(duì)故障設(shè)備實(shí)現(xiàn)遠(yuǎn)程指導(dǎo)和合理調(diào)度。
2.2 前端單元控制模塊
前端單元控制模塊負(fù)責(zé)數(shù)據(jù)的采集,其結(jié)構(gòu)如圖2所示。傳感器根據(jù)具體信號(hào)采用不同的傳感器。將檢測到的傳感器信號(hào),經(jīng)前置程控放大器AD526完成了信號(hào)的探測和初步處理后,獲取了機(jī)械設(shè)備各檢測狀態(tài)的電壓信號(hào),但是這時(shí)的檢測信號(hào)中所含的噪聲成分仍然很大,而且有用的測試信號(hào)電平很低,往往被大量的噪聲覆蓋。因此需要采用信號(hào)調(diào)理器對(duì)測試信號(hào)進(jìn)行處理,本系統(tǒng)通過程控濾波器MAX263對(duì)測試信號(hào)進(jìn)行處理,從而有效地提取有用信號(hào),降低噪聲對(duì)有用信號(hào)的影響。經(jīng)過信號(hào)調(diào)理后的檢測信號(hào)通過AVR 微處理器Tmega64控制模數(shù)轉(zhuǎn)換器AD7865轉(zhuǎn)化為數(shù)字量。
2.3 車載主控模塊
本模塊的ARM芯片S3C2410處理器是Samsung公司基于ARM公司的ARM920T處理器核,采用0.18um制造工藝的32位微控制器。S3C2410處理器最高可運(yùn)行在203MHz。
S3C2410處理器在車載主控模塊中的工作過程如下:上電或復(fù)位后,從Flash加載程序,完成對(duì)芯片的初始化和外圍硬件的配置等工作,之后便通過SPI口對(duì)系統(tǒng)中的CAN總線控制器MPC2510芯片進(jìn)行控制,系統(tǒng)各通道采集到的模擬信號(hào)經(jīng)過AD7865芯片轉(zhuǎn)換為數(shù)字信號(hào),經(jīng)CAN總線送到S3C2410的SPI口。S3C2410 將接收到的數(shù)字信號(hào)進(jìn)行相應(yīng)的處理,通過S3C2410上的接口LCD將相關(guān)信息進(jìn)行實(shí)時(shí)顯示。本系統(tǒng)中S3C2410處理器外擴(kuò)了GPRS模塊接口,通過GPRS通信模塊監(jiān)測車載的狀況并做出故障診斷,以便發(fā)生故障時(shí)實(shí)現(xiàn)遠(yuǎn)程指導(dǎo)并合理調(diào)度工程機(jī)械。
2.3.1 觸摸屏
觸摸屏作為顯示輸出設(shè)備,用來顯示嵌入式系統(tǒng)的圖形界面,通過合理的顯示界面的設(shè)計(jì),可以給用戶提供比較友好的操作環(huán)境。S3C2410的觸摸屏接口可以方便地將觸摸屏相聯(lián)在嵌入式系統(tǒng)中, 解決了人機(jī)界面一個(gè)重要的技術(shù)問題。本設(shè)計(jì)中,液晶屏選用640×480的夏普LQ080V3DG01帶背光TFT-LCD,并使用S3C2410芯片提供的LCD控制器對(duì)其進(jìn)行控制。在完成觸摸屏的基本控制后,進(jìn)行后續(xù)的軟件濾波、野點(diǎn)處理及坐標(biāo)變換等工作。硬件上利用雙溝道MOS 管FDC6321C 實(shí)現(xiàn)了觸摸屏與S3C2410 的接口, 電路簡單可靠。
2.3.2 供電電路及電源監(jiān)測電路
整個(gè)電路板采用+5 V電壓供電,從外部引入。Samsung公司ARM920T內(nèi)核的S3C2410芯片需要2個(gè)獨(dú)立的電壓:內(nèi)核電壓CVDD(+1.8 V)和外圍I/O電壓DVDD(+3.3 V),分別采用TI公司的TPS54314和TPS54316來實(shí)現(xiàn)。設(shè)計(jì)中選用了TI公司生產(chǎn)的TPS3823-33復(fù)位芯片,其固定復(fù)位信號(hào)時(shí)間長達(dá)200 ms,能滿足系統(tǒng)中所有芯片的復(fù)位需求。電路能確保在系統(tǒng)的加電過程中,CVDD和DVDD達(dá)到要求的電平之前,S3C2410芯片始終處于復(fù)位狀態(tài)。芯片帶有一個(gè)看門狗電路,通過WDI引腳接收來自S3C2410芯片的定時(shí)信號(hào),避免發(fā)生系統(tǒng)程序跑飛的情況。
3 嵌入式系統(tǒng)平臺(tái)構(gòu)建
3.1 嵌入式操作系統(tǒng)Linux 內(nèi)核移植
嵌入式Linux操作系統(tǒng)可應(yīng)用于多種硬件平臺(tái),源代碼可以免費(fèi)得到,內(nèi)核可以隨意地配置,并提供網(wǎng)絡(luò)支持,所以得到了廣泛的應(yīng)用[1]。
將嵌入式Linux系統(tǒng)移植到特定的硬件平臺(tái)上,大致需要完成以下幾個(gè)部分的工作:建立交叉編譯環(huán)境、BootLoader的移植、配置編譯Linux內(nèi)核、制作根文件系統(tǒng)、下載,調(diào)試內(nèi)核。Linux2.6內(nèi)核已經(jīng)提供了S3C2410處理器上包括LCD、觸摸屏以及NAND FLASH等設(shè)備的相關(guān)信息結(jié)構(gòu)體描述。他們分別為s3c2410fb-mach_info、s3c2410fb_ts_mach_inf和3c2410fb-platform_info。結(jié)合所采用的硬件實(shí)際配置信息,對(duì)devs.c文件所定義的各設(shè)備結(jié)構(gòu)的platform_data成員進(jìn)行賦值。
3.2 SPI接口下的CAN總線驅(qū)動(dòng)程序的開發(fā)
在Linux中,設(shè)備驅(qū)動(dòng)程序是操作系統(tǒng)內(nèi)核和機(jī)器硬件之間的接口。Linux2.6內(nèi)核中Device_driver是各個(gè)設(shè)備驅(qū)動(dòng)程序所要實(shí)現(xiàn)的一個(gè)結(jié)構(gòu)。在驅(qū)動(dòng)程序的起始函數(shù)中,Device_register函數(shù)完成各自的設(shè)備驅(qū)動(dòng)向platform_bus_type總線注冊(cè)。注冊(cè)過程會(huì)遍歷該總線上已經(jīng)注冊(cè)的設(shè)備,找到與設(shè)備驅(qū)動(dòng)相匹配。接著調(diào)用該設(shè)備驅(qū)動(dòng)的probe函數(shù)完成相關(guān)寄存器配置、中斷請(qǐng)求等硬件初始化工作并將設(shè)備驅(qū)動(dòng)和匹配設(shè)備綁定。
在本系統(tǒng)中,驅(qū)動(dòng)程序的功能主要是配置與MPC2510實(shí)現(xiàn)無縫連接的SPI接口、CAN總線控制器MPC2510的設(shè)置以及CAN總線上的數(shù)據(jù)發(fā)送與接收。S3C2420擴(kuò)展CAN總線接口程序流程圖如圖3所示。
int spi_s3c2410_init();//初始化S3C2420 SPI接口
void spi_rec_send (int nr, void *devid, struct pt_regs *regs) //CAN 通過S3C2420 SPI接口收發(fā)程序
{
u_int wr_ch,rd_ch;
ClearPending(SPI0);//清中斷標(biāo)志
if(tx_buf.len<=0)
{
wr_ch=0x00; //初始化發(fā)送緩存
}
else
{
wr_ch=tx_buf.buffer[tx_buf.head]; if(tx_buf.head>=BUF_MAX_SIZE-1)
// 判斷發(fā)送數(shù)據(jù)幀的是否完整
{
tx_buf.head=0;//清發(fā)送緩存指針
}
else
{
tx_buf.head++;
}
tx_buf.len--;
}
while (!((SPSTA0) SPSTA_READY));
SPI_READ(rd_ch);//接收數(shù)據(jù)
SPI_WRITE(wr_ch); //發(fā)送數(shù)據(jù)
if(old_char==0x7E rd_ch==0x7E)
is_sync=TRUE;
if(is_sync)
{
if(rx_buf.len < BUF_MAX_SIZE-1)
{
rx_buf.buffer[rx_buf.tail]=rd_ch;
rx_buf.len++;if(rx_buf.tail>=BUF_MAX_SIZE-1)
{
rx_buf.tail=0;//判斷接受數(shù)據(jù)幀是否完整
} //清接收緩存指針
else
{
rx_buf.tail++;
}
}
else {
disable_irq(SPI0); //退出中斷
}
count_t=0;
}
}
4 系統(tǒng)監(jiān)控功能的實(shí)現(xiàn)
4.1 A/D轉(zhuǎn)換模塊
系統(tǒng)中前端單元控制模塊微處理器采用ATMLE公司的單片機(jī)Tmega64,和TI公司高速模數(shù)轉(zhuǎn)換芯片AD7865。將EOC管腳與Tmega64的 int4中斷管腳相連,當(dāng)A/D采樣結(jié)束時(shí),EOC從低變?yōu)楦撸到y(tǒng)產(chǎn)生中斷,A/D信號(hào)進(jìn)入14位寄存器中,產(chǎn)生一個(gè)14位的A/D值。具有獨(dú)立的4通道逐次逼近型(SAR)的模數(shù)轉(zhuǎn)換器,轉(zhuǎn)換處理和數(shù)據(jù)的精度是通過CONVST信號(hào)和一個(gè)內(nèi)部晶振控制的。CONVST管腳允許4個(gè)通道同步采樣。轉(zhuǎn)換開始是通過單片機(jī)Tmega64控制CONVST信號(hào)開始的,在CONVST的上升沿,被選中的通道的跟蹤保持電路會(huì)被置為保持模式,轉(zhuǎn)換開始。在CONVST信號(hào)的上升沿后,BUSY信號(hào)會(huì)變化,這表示轉(zhuǎn)換正在進(jìn)行, 并且在所有通道選擇轉(zhuǎn)換完成之前一直保持高電平。轉(zhuǎn)換時(shí)鐘是由內(nèi)部產(chǎn)生的, 當(dāng)BUSY信號(hào)會(huì)變?yōu)榈碗娖剑硎巨D(zhuǎn)換結(jié)束。在BUSY信號(hào)的下降沿,跟蹤保持電路將回到跟蹤模式。此時(shí),AD7865內(nèi)部的4個(gè)寄存器中已經(jīng)保存了轉(zhuǎn)換的數(shù)據(jù),然后通過控制片選CS和讀RD信號(hào)依次順序讀出4個(gè)通道AD轉(zhuǎn)換值。 讀出AD轉(zhuǎn)換值后,改變CONVST為低電平信號(hào)。數(shù)據(jù)通過并行14位數(shù)據(jù)線接口從輸出寄存器中被讀出。
4.2 CAN總線模塊
本設(shè)計(jì)中采用了Microchip公司生產(chǎn)的一種獨(dú)立的可編程CAN控制器芯片MPC2510。由于S3C2410具有SPI接口,選用這款芯片可以通過SPI接口實(shí)現(xiàn)和S3C2410的無縫連接。MCP2510通過SPI接口與S3C2410進(jìn)行數(shù)據(jù)傳輸,最高數(shù)據(jù)傳輸速率可達(dá)5Mbps。該器件包含三個(gè)發(fā)送緩沖器和兩個(gè)接收緩沖器,減少了S3C2410處理器的管理負(fù)擔(dān)。為增強(qiáng)CAN總線節(jié)點(diǎn)的抗干擾能力,通過光耦6N713與82C250連接來實(shí)現(xiàn)電氣隔離,提高了系統(tǒng)的穩(wěn)定性和安全性。
這樣,一方面,A/D轉(zhuǎn)換模塊對(duì)工程機(jī)械設(shè)備的運(yùn)行數(shù)據(jù)進(jìn)行采集、轉(zhuǎn)換,控制器通過CAN總線將其傳送到主監(jiān)控中心;另一方面,主監(jiān)控中心將操作命令,由CAN總線通過控制器對(duì)機(jī)械設(shè)備進(jìn)行控制,實(shí)現(xiàn)了車載系統(tǒng)的遠(yuǎn)程實(shí)時(shí)監(jiān)控。
5 系統(tǒng)遠(yuǎn)程通訊的實(shí)現(xiàn)
GPRS終端采用SIMCOM 有限公司的SIM300 GSM/GPRS模塊可以支持4頻網(wǎng)絡(luò)模式,具有標(biāo)準(zhǔn)AT命令接口,可以提供GSM語音、短消息和GPRS上網(wǎng)等業(yè)務(wù)。它可以工作在GSM850/EGSM900/DCS1800/PCS1900多種網(wǎng)絡(luò)模式下,并且支持GPRS多時(shí)隙class10等級(jí)。本身只有40mm×33mm×3mm,采用PCB單面板設(shè)計(jì)。主要功能接口包括:電源接口、串行通信接口、模擬音頻接口、標(biāo)準(zhǔn)SIM卡接口、射頻接口等。
在本系統(tǒng)中,遠(yuǎn)端控制中心采用PC+GPRS模塊的硬件結(jié)構(gòu),各現(xiàn)場主控中心則采用ARM+GPRS模塊的硬件結(jié)構(gòu)。GPRS模塊提供了標(biāo)準(zhǔn)的RS232串行通信接口,最大支持460800 bps速率。GPRS模塊與控制器之間的通信協(xié)議是AT命令集, 所有協(xié)議均符合GSM 07.07、GSM07.05以及SIMCOM增強(qiáng)型 AT命令集。由于ARM9芯片自身提供了TTL電平標(biāo)準(zhǔn)的串行口UART,本項(xiàng)目采用MAX3232C時(shí)實(shí)現(xiàn)RS232的電平轉(zhuǎn)換。GPRS模塊UART0接口用于支持硬件流控,默認(rèn)用于AT 命令控制。UART0接口具有DTR、CTS和DCD等握手信號(hào),系統(tǒng)中通過載波檢測DCD可以檢測GPRS模塊是處于數(shù)據(jù)傳送狀態(tài)還是處于AT命令傳送狀態(tài),終端準(zhǔn)備DTR信號(hào)用來通知GPRS模塊傳送工作已經(jīng)結(jié)束。
系統(tǒng)中若現(xiàn)場主控中心要向遠(yuǎn)端控制中心發(fā)送數(shù)據(jù),設(shè)置如下即可:
AT+IPR = 115200設(shè)置波特率為115200bps
AT+CIPCLOSE (注銷當(dāng)前UDP連接)
AT+CIPSTART=“UDP”,“B的IP地址”,“B的端口號(hào)”(注冊(cè)新的UDP連接)
(成功后會(huì)返回CONNECT OK和OK)
AT+CIPSEND (發(fā)送數(shù)據(jù))
6 結(jié)束語
本系統(tǒng)是基于嵌入式平臺(tái)把CAN總線運(yùn)用于大型機(jī)械設(shè)備中,滿足了大型機(jī)械設(shè)備控制對(duì)數(shù)據(jù)傳輸和控制命令傳輸?shù)膶?shí)時(shí)性要求。設(shè)計(jì)方案借助GPRS網(wǎng)絡(luò)通信技術(shù),通過系統(tǒng)各個(gè)部分之間的遠(yuǎn)程通信,實(shí)現(xiàn)了主控中心對(duì)遠(yuǎn)程設(shè)備的實(shí)時(shí)監(jiān)控。
參考文獻(xiàn):
[1] 潘巨龍.ARM9嵌入式Linux系統(tǒng)構(gòu)建與應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2006.
[2] 孫天澤.嵌入式設(shè)計(jì)及Linux驅(qū)動(dòng)開發(fā)指南[M].北京:電子工業(yè)出版社,2005.
[3] 沈標(biāo)正.電動(dòng)機(jī)故障診斷技術(shù)[M].北京:機(jī)械工業(yè)出版社,1997.
[4] 劉松強(qiáng).數(shù)字信號(hào)處理系統(tǒng)及其應(yīng)用[M].北京:清華大學(xué)出版社,1996.
注:“本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文。”