文獻(xiàn)標(biāo)識(shí)碼: A
安全是一個(gè)永恒的話題,在交通運(yùn)輸領(lǐng)域尤其如此。在鐵路運(yùn)輸中,火車(chē)車(chē)輪的磨損是影響其安全運(yùn)行的一個(gè)重要因素。對(duì)車(chē)輪外形的測(cè)量,已經(jīng)從早期的人工模擬式進(jìn)入到如今的電子數(shù)字式,然而現(xiàn)有的測(cè)量?jī)x仍然有體積、功耗以及精度等方面的不足。針對(duì)這些不足,本文提出并設(shè)計(jì)了一種以ARM芯片LPC2214為核心的新型測(cè)量?jī)x。
1 總體設(shè)計(jì)
1.1 性能要求
本設(shè)計(jì)的任務(wù)是設(shè)計(jì)一款手持式的火車(chē)車(chē)輪參數(shù)測(cè)量?jī)x,用來(lái)檢測(cè)車(chē)輪的磨損程度,確定車(chē)輪的工作狀況,保證車(chē)輛的正常和安全運(yùn)行。設(shè)計(jì)的基本原理是使用激光傳感器測(cè)量車(chē)輪相應(yīng)的參數(shù),將其傳給測(cè)量?jī)x,實(shí)現(xiàn)數(shù)據(jù)的處理、存儲(chǔ)和顯示等。根據(jù)設(shè)計(jì)要求,需要測(cè)量的車(chē)型包括貨車(chē)、客車(chē)和動(dòng)車(chē)3種,車(chē)輪型號(hào)有20種,并有以下具體的要求:
(1)在存儲(chǔ)和顯示測(cè)量數(shù)據(jù)時(shí)提供時(shí)間、地點(diǎn)編號(hào)、測(cè)量員編號(hào)等相關(guān)信息;
(2)測(cè)量范圍10 mm~100 mm,精度0.01 mm,并存儲(chǔ)一定數(shù)量的測(cè)量數(shù)據(jù);
(3)良好的人機(jī)交互界面;
(4)體積小,重量輕,低功耗。
1.2 電路總體設(shè)計(jì)
根據(jù)性能指標(biāo),本設(shè)計(jì)采用NXP公司的ARM芯片LPC2214作為核心處理器件,外圍器件包括實(shí)時(shí)時(shí)鐘PCF8563、FLASH存儲(chǔ)器SST25VF016B、RS232/485串口驅(qū)動(dòng)芯片和電源芯片,以及液晶屏和小鍵盤(pán)等,如圖1所示。
LPC2214是一款性能優(yōu)異的微處理器,其基于一種支持實(shí)時(shí)仿真和跟蹤的32 bit ARM7TDMI-STM CPU,帶有256 KB片內(nèi)FLASH存儲(chǔ)器、2個(gè)UART串口、SPI接口、外部存儲(chǔ)器接口等,具有高達(dá)60 MHz的操作頻率,完全滿(mǎn)足設(shè)計(jì)需要[1,4]。
本系統(tǒng)有5個(gè)外部傳感器,其中3個(gè)位移傳感器、2個(gè)激光傳感器,具體參數(shù)的獲取由這5個(gè)傳感器實(shí)現(xiàn)。在數(shù)據(jù)測(cè)量中,根據(jù)車(chē)型不同,可以簡(jiǎn)要?dú)w結(jié)為如下測(cè)量方式:(1)動(dòng)車(chē)型的測(cè)量,獲取連在RS485線的3個(gè)位移傳感器值和激光傳感器4和激光傳感器5值;(2)普通客車(chē)和貨車(chē)的測(cè)量,先獲取連在RS485線的3個(gè)位移傳感器值和激光傳感器4值,再用繼電器閉合電磁線圈,延時(shí)2 s,讀取激光傳感器4值。
2 各部分軟硬件設(shè)計(jì)
2.1 實(shí)時(shí)時(shí)鐘設(shè)計(jì)
實(shí)時(shí)時(shí)鐘的任務(wù)流程圖如圖2所示。
由于在保存測(cè)量數(shù)據(jù)時(shí),需要同時(shí)保存測(cè)量時(shí)的時(shí)間,這樣便于日后檢查統(tǒng)計(jì),而LPC2214內(nèi)部自帶的實(shí)時(shí)時(shí)鐘是掉電易失的,故在設(shè)計(jì)中采用實(shí)時(shí)時(shí)鐘芯片PCF8563設(shè)計(jì)了外部時(shí)鐘電路。PCF8563是低功耗的CMOS 實(shí)時(shí)時(shí)鐘/日歷芯片,具有16個(gè)8 bit寄存器,采用I2C接口,通過(guò)SDA和SCL 2條線與LPC2214相連,使用非常簡(jiǎn)便。在其電源端接了一個(gè)1 F的電容(也可改用紐扣電池),在測(cè)量?jī)x斷電時(shí)為PCF8563提供電壓,從而實(shí)現(xiàn)實(shí)時(shí)計(jì)時(shí)功能。
另外,其第10~12個(gè)寄存器(09H~0BH)為分鐘、小時(shí)和日?qǐng)?bào)警寄存器,此處不用報(bào)警功能,而將其改為存儲(chǔ)測(cè)量次數(shù),節(jié)省了外部存儲(chǔ)空間,也保證了數(shù)據(jù)的安全性。需要存儲(chǔ)的測(cè)量次數(shù)為16 bit,考慮到3個(gè)報(bào)警寄存器并非所有位數(shù)都是有效的,實(shí)際分配為09H取8 bit,0AH和0BH取后4 bit,這樣正好16 bit,滿(mǎn)足測(cè)量數(shù)據(jù)的存儲(chǔ)范圍。
2.2 外部存儲(chǔ)器設(shè)計(jì)
本測(cè)量?jī)x是一種手持式設(shè)備,對(duì)體積要求比較嚴(yán)格。為減小電路板面積和簡(jiǎn)化布線,外部存儲(chǔ)器采用只有8個(gè)管腳的小封裝SST25VF016B。SST25VF016B是一款16 Mbit(000000H~1FFFFFH,2 MB)SPI接口串行FLASH,其采用的CMOS SuperFlash工藝保證更低的功耗,并具有4 KB、32 KB、64 KB以及Chip-Erase等4種靈活的擦除方式。SST25VF016B的連接如圖3所示。
SST25VF016B的操作包括擦除和讀寫(xiě)等,由于對(duì)速度的要求不嚴(yán)格,所以在設(shè)計(jì)中采用GPIO口模擬SPI接口。發(fā)送和接收數(shù)據(jù)的2個(gè)子程序如下:
/*******************************************
* 名稱(chēng):Send_Byte()
* 功能:模擬SPI向SST25發(fā)送數(shù)據(jù),在SCK的
* 上升沿發(fā)送1 bit的數(shù)據(jù),共發(fā)送8個(gè)
*******************************************/
void Send_Byte(uint8 byte_OUT)
{
uint8 i;
for(i=0;i<8;i++)
{
IO0CLR=SCK; //SCK=0
if((byte_OUT & 0x80)==0x80) //輸出1
{
IO0SET=SI; //SI=1;
}
else
{
IO0CLR=SI; //SI=0
}
byte_OUT=(byte_OUT<<1); //輸出0
IO0SET=SCK; //SCK=1
}
}
/*******************************************
* 名稱(chēng):Get_Byte()
* 功能:模擬SPI接收數(shù)據(jù),在SCK的下降沿接收
* 1 bit的數(shù)據(jù),共接收8個(gè)
*******************************************/
uint8 Get_Byte(void)
{
uint8 i;
uint16 byte_IN=0;
for(i=0;i<8;i++)
{
IO0CLR=SCK; //SCK=0
if((IO0PIN>>5)&0x01) //判斷是否輸入1
{
byte_IN++;
}
IO0SET=SCK; //SCK=1
byte_IN=(byte_IN<<1);
}
byte_IN=(byte_IN>>1);
return(byte_IN);
}
在對(duì)外部FLASH存儲(chǔ)空間的分配中,前80 KB用來(lái)存儲(chǔ)20組設(shè)定的參數(shù),用輪型編號(hào)進(jìn)行索引,每組占4 KB;剩下的空間用來(lái)存儲(chǔ)測(cè)量數(shù)據(jù),每組測(cè)量數(shù)據(jù)分配40 B,用存儲(chǔ)在實(shí)時(shí)時(shí)鐘報(bào)警寄存器內(nèi)的測(cè)量次數(shù)進(jìn)行索引,理論可存儲(chǔ)50 380組,可滿(mǎn)足長(zhǎng)時(shí)間使用的需要。另外,在設(shè)置和測(cè)量的數(shù)據(jù)中,有一部分參數(shù)是小數(shù),可將其轉(zhuǎn)化為整數(shù)后存儲(chǔ),讀取時(shí)再轉(zhuǎn)化為小數(shù)即可。外部存儲(chǔ)器的讀寫(xiě)流程如圖4所示。
2.3 液晶屏驅(qū)動(dòng)設(shè)計(jì)
液晶屏型號(hào)為P160128,由于其沒(méi)有自帶的漢字庫(kù),故根據(jù)需要顯示的漢字通過(guò)相關(guān)的軟件來(lái)完成制作漢字庫(kù)[3]。設(shè)計(jì)成的字庫(kù)和ASCII字符約有8 KB,存儲(chǔ)在LPC2214的內(nèi)部FLASH中。此液晶屏為160×128點(diǎn)陣,而每個(gè)漢字占用點(diǎn)陣為16×16,故此屏可以顯示8行漢字,每行10個(gè),因此對(duì)于某些需要顯示較多參數(shù)的地方,可以考慮分多屏顯示。
2.4 鍵盤(pán)掃描程序設(shè)計(jì)
根據(jù)應(yīng)用需要,設(shè)計(jì)中采用4×5矩陣鍵盤(pán),共計(jì)20個(gè)按鍵。鍵盤(pán)掃描程序是整個(gè)軟件的核心程序,通過(guò)使用者對(duì)鍵盤(pán)的操作調(diào)用相應(yīng)的子程序,完成相應(yīng)的設(shè)置和控制[4]。
3 軟硬件調(diào)試
本設(shè)計(jì)中需要顯示設(shè)置、測(cè)量、查詢(xún)3個(gè)界面,根據(jù)屏幕的大小,設(shè)置和查詢(xún)分為2屏顯示,測(cè)量界面為1屏顯示。
系統(tǒng)開(kāi)機(jī)時(shí)默認(rèn)進(jìn)入設(shè)置界面,設(shè)置界面1和界面2可以通過(guò)“→”“←”進(jìn)行切換,其中實(shí)時(shí)時(shí)鐘的設(shè)定就是在設(shè)置界面2進(jìn)行的。在設(shè)置界面可以對(duì)20種輪型進(jìn)行參數(shù)的設(shè)置和查看,每組輪型參數(shù)的有效長(zhǎng)度為40 B,實(shí)際分配4 KB,這樣做的原因,就是在對(duì)某種輪型參數(shù)進(jìn)行修改時(shí),需要先對(duì)修改區(qū)域進(jìn)行擦除,可通過(guò)調(diào)用擦除4 KB子程序Block_Erase4k()來(lái)實(shí)現(xiàn),而不會(huì)影響到其他組。
測(cè)量界面負(fù)責(zé)顯示經(jīng)處理后的數(shù)據(jù)信息。在測(cè)量前半部分可以設(shè)定6個(gè)相關(guān)的參數(shù)。當(dāng)檢測(cè)到“確認(rèn)”鍵按下時(shí),系統(tǒng)自動(dòng)調(diào)用子函數(shù)save_test_para()來(lái)保存測(cè)量數(shù)據(jù)和實(shí)時(shí)的日期時(shí)間,同時(shí)測(cè)量次數(shù)自動(dòng)加1,為存儲(chǔ)下一組測(cè)量數(shù)據(jù)做好準(zhǔn)備。
當(dāng)需要對(duì)之前測(cè)量的數(shù)據(jù)進(jìn)行查詢(xún)時(shí),可以切換到“查詢(xún)”界面。“查詢(xún)”界面默認(rèn)顯示為剛剛保存的一組測(cè)量數(shù)據(jù),此時(shí)可以通過(guò)“↓”“↑”2個(gè)按鍵對(duì)序號(hào)進(jìn)行增減,也可以通過(guò)數(shù)字鍵輸入要查詢(xún)的測(cè)量序號(hào),然后按“確認(rèn)”鍵,通過(guò)執(zhí)行子函數(shù)Display_querry()調(diào)出測(cè)量數(shù)據(jù)。相對(duì)于“測(cè)量”界面,“查詢(xún)”界面需要額外顯示測(cè)量日期和時(shí)間,受屏幕限制,同樣將其分為2屏,可以通過(guò)“→”“←”2個(gè)按鍵進(jìn)行切換。
本文以ARM芯片LPC2214為核心,設(shè)計(jì)了一款手持式測(cè)量?jī)x,具有較高的測(cè)量精度和非常優(yōu)越的實(shí)用價(jià)值。在設(shè)計(jì)中結(jié)合實(shí)際要求和器件性能,靈活設(shè)計(jì)了相應(yīng)的硬件電路和軟件程序,達(dá)到了實(shí)用目的。作為一款新型的輪參測(cè)量儀,本系統(tǒng)最大的意義在于采用合理的器件,以相對(duì)很低的成本達(dá)到了較高的精度,既可用于測(cè)量在線運(yùn)行列車(chē)車(chē)輪的磨損,還可以在生產(chǎn)線上對(duì)輪型尺寸進(jìn)行分選,同時(shí),可借鑒該系統(tǒng)的設(shè)計(jì)思想用于其他對(duì)體積、功耗、成本等要求較高的場(chǎng)合。
此外,在開(kāi)發(fā)過(guò)程中,考慮到用戶(hù)的要求,可采用更高級(jí)別標(biāo)準(zhǔn)的器件,以適應(yīng)各種不同的環(huán)境。同時(shí),本系統(tǒng)的操作和顯示方式簡(jiǎn)潔,方便用戶(hù)使用,可廣泛應(yīng)用于各種相關(guān)的場(chǎng)合。
參考文獻(xiàn)
[1] 周立功.ARM嵌入式系統(tǒng)基礎(chǔ)教程[M].北京:北京航空 航天大學(xué)出版社,2005.
[2] 曹準(zhǔn),周文祥,張學(xué)川.基于手機(jī)的虛擬儀器技術(shù)研究[J].電子技術(shù)應(yīng)用,2007(9):91-95.
[3] 張昀超,周明濤,靳世久.液晶顯示模塊測(cè)試系統(tǒng)[J].電子測(cè)量技術(shù),2006,29(4):42-43.
[4] PHILIPS公司.LPC2114/2124/2212/2214 User Manual.2004.