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