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