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