一款新型煙草稱重讀卡定級器的設(shè)計與實現(xiàn)
2 硬件設(shè)計方案
煙草稱重讀卡定級器以微控制器STM32F103VC為核心,并在其周圍擴展外設(shè)構(gòu)成系統(tǒng)。微控制器STM32F103VC使用高性能的ARM Cortex-M3 32位的RISC內(nèi)核,內(nèi)置高速存儲器(高達128k字節(jié)的閃存和20k字節(jié)的SRAM),具有豐富的硬件接口資源,以其為中心構(gòu)建的煙草稱重讀卡定級器硬件框圖如圖2所示。
2.1 A/D轉(zhuǎn)換部分
煙葉筐放置到秤臺上后,秤臺上的電阻應(yīng)變式傳感器將重量信號轉(zhuǎn)變?yōu)殡妷盒盘?,該電壓信號傳送給CS5532完成A/D轉(zhuǎn)換。CS5532芯片是美國Cirrus Logic公司推出的一種具有極低噪音的、多通道△-∑型ADC,可達到24位分辨率的輸出結(jié)果,精度高、動態(tài)特性寬。轉(zhuǎn)換后的數(shù)據(jù)從CS5532的同步串行接口輸出至微控制器STM32F103VC,同時可在240×64點陣式液晶顯示器上顯示當前煙草的重量。
2.2 讀卡處理部分
系統(tǒng)采用FNUHFD2180讀卡器進行RFID數(shù)據(jù)采集,該讀卡器可對符合ISO18000-6C協(xié)議的電子標簽進行讀寫。讀卡器通過UART2與煙草稱重讀卡定級器通訊,煙草稱重讀卡定級器控制讀卡器發(fā)射一特定頻率的無線電波能量給煙葉框上的電子標簽,用以驅(qū)動標簽電路將內(nèi)部的數(shù)據(jù)送出,讀卡器依序接收解讀數(shù)據(jù),送至煙草稱重讀卡定級器進行相關(guān)處理。
2.3 串行通訊部分
STM32F103VC利用串行口與外圍設(shè)備進行數(shù)據(jù)通訊,其中與上位計算機通訊使用UART1,串行數(shù)據(jù)通訊格式采用波特率9600b/s;1位起始位8位數(shù)據(jù)位,無校驗,1位停止位。根據(jù)程序里預(yù)先定義好的協(xié)議,上位計算機與控制器進行數(shù)據(jù)通訊??刂破髋c讀卡器通訊使用UART2,與LCD顯示屏通訊使用UART3。
2.4 存儲部分
存儲部分采用鐵電存儲器M31256,該存儲芯片具有非易失性、讀卡速度快以及讀寫功耗極低等諸多優(yōu)點,提供256kb的存儲空間。FM31 256采用I2C總線形式與STM32F103VC通信,芯片上的時鐘線SCL、數(shù)據(jù)線SDA與STM32F103VC上的I2C接口相連,嚴格按照I2C總線協(xié)議進行命令寫入與數(shù)據(jù)交換。
3 管理軟件設(shè)計
煙草稱重讀卡定級器的軟件設(shè)計引入嵌入式實時操作系統(tǒng)μC/OS-II,μC/OS-II是一種基于優(yōu)先級的搶占式多任務(wù)實時操作系統(tǒng),包含了實時內(nèi)核、任務(wù)管理、時間管理、任務(wù)間通信同步(信號量、郵箱、消息隊列)和內(nèi)存管理等功能。操作系統(tǒng)內(nèi)核的主要工作是對任務(wù)(ta sk)進行管理和調(diào)度。操作系統(tǒng)將整個應(yīng)用系統(tǒng)程序分解為多個小任務(wù),系統(tǒng)并發(fā)運行多個任務(wù),從而提高處理器的利用率,加快程序的執(zhí)行速度,提高系統(tǒng)的實時響應(yīng)。
3.1 任務(wù)劃分與設(shè)計
根據(jù)煙草稱重讀卡定級系統(tǒng)所要實現(xiàn)的功能,考慮系統(tǒng)實時性、可靠性的要求,進行任務(wù)的劃分并創(chuàng)建任務(wù),按其優(yōu)先級從高到低分別是初始化任務(wù)、鍵盤掃描任務(wù)、ADC任務(wù)、主串口通訊任務(wù)、讀卡串口任務(wù)、空閑任務(wù)。每個任務(wù)在4種不同的狀態(tài)中轉(zhuǎn)換:休眠態(tài)、就緒態(tài)、掛起態(tài)和運行態(tài)。在運行狀態(tài)下,還可能由于發(fā)生中斷而轉(zhuǎn)向中斷服務(wù)子程序。任務(wù)管理函數(shù)的調(diào)用將引起各任務(wù)狀態(tài)間的轉(zhuǎn)換,系統(tǒng)軟件流程圖如圖3所示。
系統(tǒng)上電復(fù)位后,首先進行嵌入式處理器與外設(shè)的初始化,完成系統(tǒng)時鐘、GPIO口以及中斷相關(guān)參數(shù)的配置。系統(tǒng)使用外部中斷2讀取A/D轉(zhuǎn)換結(jié)束信號,定時器中斷2為μC/OS-II系統(tǒng)提供時鐘節(jié)拍,串行口中斷1用于上位機通訊,串行口中斷2用于讀卡器通訊。然后是初始化μC/OS-II操作系統(tǒng),同時液晶顯示開始畫面。接著創(chuàng)建初始化任務(wù),完成應(yīng)用任務(wù)(包括鍵盤掃描任務(wù)、ADC任務(wù)、主串口通訊任務(wù)、讀卡串口任務(wù))以及空閑任務(wù)的創(chuàng)建,信號量與互斥量的創(chuàng)建,郵箱消息的建立,窗口看門狗初始化。最后啟動多任務(wù),此時,任務(wù)交由操作系統(tǒng)管理與調(diào)度。
程序代碼大體如下所示:
評論