siemens x
傳感器

基于SmaU RTOS51的汽車(chē)動(dòng)態(tài)稱(chēng)重儀的設(shè)計(jì)

2025China.cn   2009年03月23日
1 引言
     動(dòng)態(tài)汽車(chē)稱(chēng)重是汽車(chē)以一定的速度經(jīng)過(guò)一定寬度的稱(chēng)重臺(tái)面,由稱(chēng)重臺(tái)面測(cè)出汽車(chē)每個(gè)軸的重量,然后累加得出汽車(chē)總重。該稱(chēng)重過(guò)程是一個(gè)強(qiáng)實(shí)時(shí)過(guò)程,需要單片機(jī)及時(shí)采集汽車(chē)每個(gè)軸的數(shù)據(jù)并快速計(jì)算其重量。如果單片機(jī)速度過(guò)慢或者程序設(shè)計(jì)不合理,就會(huì)給儀表帶來(lái)穩(wěn)定性和可靠性的問(wèn)題。當(dāng)前很多智能儀表的軟件采用前/后臺(tái)系統(tǒng)設(shè)計(jì),整個(gè)應(yīng)用程序是一個(gè)無(wú)限的循環(huán),后臺(tái)程序循環(huán)調(diào)用相應(yīng)的函數(shù)完成相應(yīng)的操作,中斷服務(wù)程序處理異步事件。這種傳統(tǒng)的程序設(shè)計(jì)思路有著明顯的不足。整個(gè)應(yīng)用程序是一個(gè)有機(jī)的整體,使得實(shí)時(shí)應(yīng)用程序的設(shè)計(jì)和擴(kuò)展困難,時(shí)間要求苛刻的事件難以達(dá)到快捷有效的處理,對(duì)事件的串行處理使得資源得不到很好的利用。在智能儀表中移植嵌入式操作系統(tǒng)能較好的解決以上問(wèn)題,并使軟件開(kāi)發(fā)工作變得規(guī)范、容易測(cè)試,實(shí)現(xiàn)模塊化編程和縮短開(kāi)發(fā)周期。當(dāng)然RTOS本身需要占用一定的資源,隨著半導(dǎo)體技術(shù)的發(fā)展,器件的性能不斷上升、成本不斷下降,使得RTOS所消耗的成本不再重要。汽車(chē)動(dòng)態(tài)稱(chēng)重儀就是移植了嵌入式操作系統(tǒng),在實(shí)際應(yīng)用中增強(qiáng)了系統(tǒng)穩(wěn)定性和可靠性。

2 系統(tǒng)總體方案
    
汽車(chē)動(dòng)態(tài)稱(chēng)重儀主要由數(shù)據(jù)采集模塊、數(shù)據(jù)處理模塊、顯示模塊、數(shù)據(jù)通訊模塊、外部存儲(chǔ)器和外部看門(mén)狗組成,如圖1所示。數(shù)據(jù)采集模塊負(fù)責(zé)將稱(chēng)重傳感器檢測(cè)到的重量信號(hào)放大、濾波,轉(zhuǎn)換成數(shù)字信號(hào)傳送給CPU;CPU負(fù)責(zé)與各個(gè)外設(shè)的通訊和重量信號(hào)的分析和處理,并將處理完的重量信號(hào)發(fā)送給顯示模塊和通訊模塊;顯示模塊負(fù)責(zé)重量信號(hào)的顯示:通訊模塊負(fù)責(zé)將重量信號(hào)發(fā)送到上位機(jī);外部存儲(chǔ)器存放儀表的參數(shù):按鍵用來(lái)設(shè)置和修改儀表參數(shù);外部看門(mén)狗用來(lái)提高儀表的抗干擾能力,增強(qiáng)儀表的穩(wěn)定性。

3 硬件電路設(shè)計(jì)
3.1 數(shù)據(jù)采集模塊
     
由于稱(chēng)重儀表需要高精度,采用外接A/D轉(zhuǎn)換器,選用CS5532。該器件是美國(guó)Cirrus Logic公司推出的一種具有極低噪音的多通道型模擬/數(shù)字轉(zhuǎn)換器,由于其采用電荷平衡技術(shù)和極低噪聲的可編程增益斬波穩(wěn)定測(cè)量放大器,內(nèi)部集成了放大和濾波功能,可得到高達(dá)24位分辨率的輸出結(jié)果,且具有高動(dòng)態(tài)范圍和靈活的電源配置選項(xiàng)等優(yōu)點(diǎn),使得該器件非常適合于動(dòng)態(tài)稱(chēng)重。其基準(zhǔn)電壓由專(zhuān)門(mén)的基準(zhǔn)電壓器件AD780提供。電路如圖2所示。

3.2 微處理器和外部存儲(chǔ)器
     
微處理器是系統(tǒng)的核心,其性能的好壞直接決定了稱(chēng)重系統(tǒng)的準(zhǔn)確性、穩(wěn)定性和可靠性。基于汽車(chē)動(dòng)態(tài)稱(chēng)重儀對(duì)精度和實(shí)時(shí)性的要求,選用PHILIPS公司的P89C668單片機(jī)。它具有以下特點(diǎn):
     ①片內(nèi)帶有8 KB RAM,64 KB Flash存儲(chǔ)器,該存儲(chǔ)器既可并行編程也可串行編程(ISP),在實(shí)際的成型產(chǎn)品中可通過(guò)ISP升級(jí)用戶(hù)程序;②該器件在6個(gè)時(shí)鐘周期內(nèi)執(zhí)行一條指令,是傳統(tǒng)的80C51的2倍;在每個(gè)機(jī)器周期,6個(gè)時(shí)鐘周期下速度高達(dá)20 MHz(相當(dāng)于40 MHz性能);③該器件有4個(gè)8位I/O端口,3個(gè)16位定時(shí)器/事件計(jì)數(shù)器,多中斷源,4個(gè)優(yōu)選級(jí),可嵌套中斷結(jié)構(gòu),一個(gè)增強(qiáng)型UART和片內(nèi)振蕩器及時(shí)序電路;這些資源為系統(tǒng)的硬件設(shè)計(jì)提供足夠的I/O端口,為軟件復(fù)雜功能的實(shí)現(xiàn)和未來(lái)程序的擴(kuò)展,提供了足夠的程序存儲(chǔ)空間,為重量數(shù)據(jù)的采樣、濾波和稱(chēng)重算法的實(shí)現(xiàn),提供了足夠的數(shù)據(jù)存儲(chǔ)空間,可采用ISP功能實(shí)現(xiàn)產(chǎn)品的軟件升級(jí)。 
     外部存儲(chǔ)器采用ATMEL公司的AT24C512器件,擁有64 KB存儲(chǔ)容量、I2C接口的電可擦除非易失EEPROM存儲(chǔ)器,為設(shè)置和校準(zhǔn)參數(shù)提供存儲(chǔ)空間。3.3 顯示和通訊模塊
    
顯示驅(qū)動(dòng)采用SN74HC595,是一款串行輸入并行輸出的移位寄存器,僅需3根I/O端口線即可控制6個(gè)數(shù)碼管和8個(gè)發(fā)光二極管,極大節(jié)省了單片機(jī)的資源,電路如圖3所示。

     通訊模塊采用MAX232,并采取光隔離設(shè)計(jì),以提高儀表的抗干擾能力,如圖4所示。

3.4 按鍵和外部看門(mén)狗電路
    
鍵盤(pán)采用典型的4x4矩陣薄膜按鍵鍵盤(pán),用來(lái)設(shè)置儀表參數(shù)。為了提高儀表的抗干擾能力,增強(qiáng)儀表的穩(wěn)定性,采用外部看門(mén)狗復(fù)位電路。選用的器件是MAX813,電路如圖5所示。


4 系統(tǒng)軟件設(shè)計(jì)
4.1 Small RTOS51簡(jiǎn)介
     
Small RTOS5l是一個(gè)專(zhuān)門(mén)為5l系列單片機(jī)設(shè)計(jì)的嵌入式實(shí)時(shí)操作內(nèi)核,使用Keil編譯器可以直接使用其代碼,其特點(diǎn):①公開(kāi)源代碼。只要遵循許可協(xié)議,任何人可以免費(fèi)獲得源代碼,便于用戶(hù)的二次開(kāi)發(fā)。②可移植性。用戶(hù)可以把與CPU有關(guān)的控制指令壓縮到最小??梢允褂肁NSIC編寫(xiě)應(yīng)用程序,不僅簡(jiǎn)化了編程手段,而且便于程序移植。⑧可固化性。Small RTOS51為嵌入式系統(tǒng)設(shè)計(jì),可以嵌入到產(chǎn)品中,成為產(chǎn)品的一部分。④占先式運(yùn)行。Small RT0S51可以管理16個(gè)用戶(hù)任務(wù),每個(gè)任務(wù)可以設(shè)置不同的優(yōu)先級(jí)。Small RTOS5l總是運(yùn)行優(yōu)先級(jí)最高的任務(wù)。⑤中斷管理。采用中斷管理方式.當(dāng)有更高級(jí)的中斷申請(qǐng)時(shí),將目前正在執(zhí)行的任務(wù)掛起。如果優(yōu)先級(jí)更高的任務(wù)被中斷喚醒,則高優(yōu)先級(jí)的任務(wù)在中斷嵌套結(jié)束后立刻執(zhí)行。中斷嵌套層數(shù)可達(dá)255層。若需要,可以禁止中斷的嵌套管理。⑥RAM需求小。SmallRTOS51為小RAM的系統(tǒng)設(shè)計(jì),因而對(duì)RAM的需求只有幾百字節(jié),相應(yīng)的系統(tǒng)服務(wù)也少。
4.2 系統(tǒng)軟件實(shí)現(xiàn)
     
按照儀表所要實(shí)現(xiàn)的功能,將整個(gè)系統(tǒng)劃分為多個(gè)并行的任務(wù),占先式操作內(nèi)核對(duì)任務(wù)的調(diào)度是按照任務(wù)優(yōu)先權(quán)的高低進(jìn)行。這里將系統(tǒng)劃分為8個(gè)任務(wù),按其優(yōu)先級(jí)從高到低的順序排序。用操作系統(tǒng)提供的任務(wù)建立函數(shù)OS一TaskCreate來(lái)實(shí)現(xiàn)。
     (1)Task_AD負(fù)責(zé)接收A/D轉(zhuǎn)換后的數(shù)據(jù),即信號(hào)的采樣,并判斷是否為汽車(chē)軸重?cái)?shù)據(jù),若是就保存。通過(guò)中斷服務(wù)程序接收A/D轉(zhuǎn)換后的數(shù)據(jù),讀取完成會(huì)發(fā)一個(gè)信號(hào)量AD_Sem,Task_AD任務(wù)接收到AD_Sem信號(hào)量后開(kāi)始判斷是否保存數(shù)據(jù)。如果任務(wù)檢測(cè)到一個(gè)軸完整通過(guò)稱(chēng)臺(tái),就發(fā)送相應(yīng)軸的消息到數(shù)據(jù)處理任務(wù)。
     (2)Task_Identify負(fù)責(zé)識(shí)別汽車(chē)的軸型和汽車(chē)是否完全通過(guò)稱(chēng)臺(tái)。根據(jù)國(guó)家規(guī)定,不同軸型的汽車(chē)限載不同,所以動(dòng)態(tài)稱(chēng)重時(shí),儀表要自動(dòng)識(shí)別汽車(chē)軸型,然后根據(jù)該軸型汽車(chē)的限重判斷其是否超載。該任務(wù)還通過(guò)掃描車(chē)輛分離器的信號(hào),識(shí)別車(chē)輛是否完全通過(guò)稱(chēng)重臺(tái)面。若識(shí)別到車(chē)輛完全通過(guò)稱(chēng)臺(tái),就發(fā)送End_Sem信號(hào)量。
     (3)Task_Comm_Rece負(fù)責(zé)接收來(lái)自上位機(jī)的命令和回應(yīng)儀表的發(fā)送請(qǐng)求。儀表通過(guò)上位機(jī)發(fā)來(lái)的不同命令執(zhí)行相應(yīng)的操作。
     (4)Task_Key負(fù)責(zé)按鍵的掃描和識(shí)別。
     (5)Task_Data負(fù)責(zé)稱(chēng)重?cái)?shù)據(jù)的處理。當(dāng)該任務(wù)接收到來(lái)自Task_AD任務(wù)發(fā)送的軸信息后,開(kāi)始處理該軸的數(shù)據(jù)。通過(guò)稱(chēng)重算法計(jì)算出該軸的重量。并將重量以信息的方式發(fā)送給Task_Display任務(wù)。
     (6)Task_Display負(fù)責(zé)顯示重量和參數(shù)。該任務(wù)接收到數(shù)據(jù)處理發(fā)來(lái)的信息,將顯示該軸的重量,如果儀表檢測(cè)到汽車(chē)已完全通過(guò)稱(chēng)臺(tái),顯示汽車(chē)總重。如果Task_Key任務(wù)掃描到參數(shù)鍵按下時(shí),切換到參數(shù)顯示狀態(tài)。
     (7)Task_End負(fù)責(zé)汽車(chē)完全通過(guò)稱(chēng)臺(tái)后的一系列處理工作,包括總重累加,軸組重量統(tǒng)計(jì),軸型統(tǒng)計(jì)。處理完后向數(shù)據(jù)通訊信息隊(duì)列發(fā)送信息,通知數(shù)據(jù)發(fā)送任務(wù)向上位機(jī)發(fā)送相應(yīng)數(shù)據(jù)。
     (8)Task_Comm_Send負(fù)責(zé)向上位機(jī)發(fā)送數(shù)據(jù),當(dāng)該任務(wù)接收到通訊消息后,根據(jù)不同的信息值向上位機(jī)發(fā)送不同的數(shù)據(jù),例如,若汽車(chē)正向通過(guò)稱(chēng)重臺(tái)面,則通訊信息值為1,Task_Comm_Send接收到該消息后會(huì)向上位機(jī)發(fā)送車(chē)輛的重量信息和軸型信息。若汽車(chē)反向通過(guò)稱(chēng)重臺(tái)面,則通訊信息值為0,Task_Comm_Send接收到該信息會(huì)向上位機(jī)發(fā)送車(chē)輛的倒車(chē)信息。

5 結(jié)語(yǔ)
    
以嵌入式操作系統(tǒng)為開(kāi)發(fā)平臺(tái)能夠提高效率,避免傳統(tǒng)開(kāi)發(fā)中復(fù)雜的循環(huán)和判斷結(jié)構(gòu),降低了程序維護(hù)的難度。通過(guò)合理的任務(wù)劃分可以滿足系統(tǒng)的實(shí)時(shí)性、可靠性、精確性的要求?!?/P>

(轉(zhuǎn)載)

標(biāo)簽:基于 SmaU RTOS51 的 汽車(chē)動(dòng)態(tài) 稱(chēng)重儀 的 設(shè)計(jì) 我要反饋 
2024世界人工智能大會(huì)專(zhuān)題
即刻點(diǎn)擊并下載ABB資料,好禮贏不停~
優(yōu)傲機(jī)器人下載中心
西克
2024全景工博會(huì)
專(zhuān)題報(bào)道