《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于SmaU RTOS51的汽車動態(tài)稱重儀的設(shè)計
基于SmaU RTOS51的汽車動態(tài)稱重儀的設(shè)計
摘要: 汽車動態(tài)稱重儀主要由數(shù)據(jù)采集模塊、數(shù)據(jù)處理模塊,、顯示模塊,、數(shù)據(jù)通訊模塊,、外部存儲器和外部看門狗組成,如圖1所示,。數(shù)據(jù)采集模塊負責(zé)將稱重傳感器檢測到的重量信號放大,、濾波,轉(zhuǎn)換成數(shù)字信號傳送給CPU,;CPU負責(zé)與各個外設(shè)的通訊和重量信號的分析和處理,,并將處理完的重量信號發(fā)送給顯示模塊和通訊模塊;顯示模塊負責(zé)重量信號的顯示:通訊模塊負責(zé)將重量信號發(fā)送到上位機,;外部存儲器存放儀表的參數(shù):按鍵用來設(shè)置和修改儀表參數(shù),;外部看門狗用來提高儀表的抗干擾能力,增強儀表的穩(wěn)定性。
Abstract:
Key words :

1 引言

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

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

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

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

3.3 顯示和通訊模塊

    顯示驅(qū)動采用SN74HC595,是一款串行輸入并行輸出的移位寄存器,,僅需3根I/O端口線即可控制6個數(shù)碼管和8個發(fā)光二極管,,極大節(jié)省了單片機的資源,電路如圖3所示,。

 

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

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


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

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

 

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。