文獻(xiàn)標(biāo)識碼: A
安全是一個永恒的話題,在交通運輸領(lǐng)域尤其如此,。在鐵路運輸中,,火車車輪的磨損是影響其安全運行的一個重要因素。對車輪外形的測量,,已經(jīng)從早期的人工模擬式進(jìn)入到如今的電子數(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接口、外部存儲器接口等,,具有高達(dá)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ù),,用輪型編號進(jìn)行索引,,每組占4 KB;剩下的空間用來存儲測量數(shù)據(jù),,每組測量數(shù)據(jù)分配40 B,,用存儲在實時時鐘報警寄存器內(nèi)的測量次數(shù)進(jìn)行索引,理論可存儲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)進(jìn)入設(shè)置界面,,設(shè)置界面1和界面2可以通過“→”“←”進(jìn)行切換,,其中實時時鐘的設(shè)定就是在設(shè)置界面2進(jìn)行的。在設(shè)置界面可以對20種輪型進(jìn)行參數(shù)的設(shè)置和查看,,每組輪型參數(shù)的有效長度為40 B,實際分配4 KB,,這樣做的原因,,就是在對某種輪型參數(shù)進(jìn)行修改時,需要先對修改區(qū)域進(jìn)行擦除,,可通過調(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ù)進(jìn)行查詢時,,可以切換到“查詢”界面,。“查詢”界面默認(rèn)顯示為剛剛保存的一組測量數(shù)據(jù),此時可以通過“↓”“↑”2個按鍵對序號進(jìn)行增減,,也可以通過數(shù)字鍵輸入要查詢的測量序號,,然后按“確認(rèn)”鍵,通過執(zhí)行子函數(shù)Display_querry()調(diào)出測量數(shù)據(jù),。相對于“測量”界面,,“查詢”界面需要額外顯示測量日期和時間,受屏幕限制,,同樣將其分為2屏,,可以通過“→”“←”2個按鍵進(jìn)行切換,。
本文以ARM芯片LPC2214為核心,設(shè)計了一款手持式測量儀,,具有較高的測量精度和非常優(yōu)越的實用價值,。在設(shè)計中結(jié)合實際要求和器件性能,靈活設(shè)計了相應(yīng)的硬件電路和軟件程序,,達(dá)到了實用目的,。作為一款新型的輪參測量儀,本系統(tǒng)最大的意義在于采用合理的器件,,以相對很低的成本達(dá)到了較高的精度,,既可用于測量在線運行列車車輪的磨損,還可以在生產(chǎn)線上對輪型尺寸進(jìn)行分選,,同時,,可借鑒該系統(tǒng)的設(shè)計思想用于其他對體積、功耗,、成本等要求較高的場合,。
此外,在開發(fā)過程中,,考慮到用戶的要求,,可采用更高級別標(biāo)準(zhǔn)的器件,以適應(yīng)各種不同的環(huán)境,。同時,,本系統(tǒng)的操作和顯示方式簡潔,方便用戶使用,,可廣泛應(yīng)用于各種相關(guān)的場合,。
參考文獻(xià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.