東北林業大學信息與計算機工程學院 李建源
本文介紹了幾種基于單片機系統的紙張計數裝置,并進行了分析和總結,這些裝置的共同特點是將電容值的變化轉變為頻率值的變化,最終通過頻率和紙張數目的對應關系得出紙張數目。本設計基于STM32嵌入式單片機提出一種新的紙張計數方案,該方案利用STM32嵌入式單片機通用定時器的輸入捕獲功能,對電容充電高電平捕獲,獲得高電平的建立時間,并將捕獲的時間換算為紙張數目,是一種簡單、可行的設計方案。
許多行業及辦公場所需要對紙張進行計數,傳統的測量方法是先測量出一疊紙張厚度,再除以單張紙張厚度,從而得出紙張數量;這種傳統方法效率低、測量不精確,已經不能滿足現代辦公的需求。隨著計算機技術的發展,尤其是嵌入式單片機的發展,許多科技工作者著手研究效率更高、測量更加精確的紙張計數裝置,針對紙張計數模型都提出了很多可行的、合理的設計方案。本文提出了一種基于STM32F4嵌入式單片機,利用高電平邊沿捕獲技術,實現紙張計數的一種設計方案。
由平板電容器和CD4069非門構成非對稱式多諧振蕩器,平板電容器的容量值隨著紙張數量的變化而變化,從而使振蕩器的輸出頻率發生變化,通過單片機對頻率的檢測,間接得到測試紙張的數目。由CD4069非門構成的非對稱式多諧振蕩器的振蕩頻率,理論上可以高達4M,實際應用在2M左右,對紙張的區分度較好。
555定時器是一種模擬和數字功能相結合的中規模集成器件,555定時電路用途廣泛,用于脈沖波形的產生與轉換、測量與控制等方面。利用平板電容器和555定時電路組成脈沖波形發生器,將脈沖傳送到單片機中,由于不同的紙張數量可以產生不同的波形,所以可以通過采集不同的頻率的波形,并計算頻率值來計算紙張數量。通過設置合適的電路參數,振蕩頻率范圍廣,當紙張數目發生變化,頻率會明顯變化,也能夠較好的區別紙張數目。
CAV444是一個多種電容式傳感器信號測量集成電路,基于CAV444芯片的電容測量電路,能夠將測得的電容量轉變為相應頻率輸出。根據實際電路測量發現,其電容信號和輸出頻率為線性關系。因此,以CAV444為核心的紙張計數裝置,能夠根據不同的紙張數目,輸出不同的頻率值,再經過單片機系統得到紙張數目,具有較好的測量精度。
FDC2214是TI公司設計的一款高精度電容傳感器,電容傳感器分辨率可達28位,具有抗噪聲、高分辨率、高速等多種特性,可以用于接近傳感、手勢識別、液位檢測等多種應用場景,它具有四個通道,可以同時采樣四路電容數據,并通過IIC接口與單片機相連。FDC2214同測量紙張數目的平板電容器可以構成振蕩器,并產生諧振頻率,單片機通過讀取諧振頻率值間接計算紙張數目。
綜合以上幾種設計方案,設計思想是利用一種傳感器裝置和測量平板電容構成一個振蕩器,當紙張數目發生變化時,平板電容器的容量值也發生改變,從而使該裝置的輸出頻率變化,單片機通過讀取變化的頻率值從而間接的計算出所測量的紙張數目。
綜合以上幾種紙張計數裝置的設計方案,其設計方案的共同特點是利用平板電容器作為檢測器件,測試紙張放在平板電容器的兩個極板之間,由于紙張總厚度的不同,所以平板電容器的容量值不同,利用容量值的變化從而測量出紙張數量。本紙張計數裝置模型由兩塊5cm×5cm的正方形覆銅板組成,裝置模型如圖1所示。

圖1 紙張計數裝置模型
STM32F4系列是意法半導體公司生產的,基于ARM Cortex內核,專為要求高性能、低成本和低功耗的集成應用而設計的高性能嵌入式芯片,工作頻率高達168 MHz。具有豐富的內部外設,功能非常強大,廣泛應用于電機驅動和應用控制、醫療設備、打印機和掃描儀等眾多應用場合,是目前主流芯片之一。
STM32F4的定時器功能十分強大,有兩個高級定時器、兩個基本定時器,還有多個通用定時器。STM32F4的通用定時器包含一個16位或32位自動重載計數器(CNT),該計數器由可編程預分頻器(PSC)驅動。STM32F4的通用定時器除了簡單的定時計數功能外,還可以被用于測量輸入信號的脈沖長度、輸入捕獲功能或者產生輸出比較信號。本文利用STM32F4定時器的輸入捕獲能力進行設計,完成紙張計數裝置的功能實現。
STM32F4的通用定時器具有輸入捕獲功能,即可以利用定時器檢測高電平的建立時間,如圖2所示,T1、T2為不同紙張數目的高電平捕獲時間。外接阻容電路接入STM32F4的通用定時器輸入捕獲引腳,開始測量時定時器引腳首先輸出低電平,對電容放電,保證電容兩端電壓從零伏開始充電。由于所測紙張厚度的不同,平板電容器的容量值也不同,因此,引腳處電容至高電平的充電時間不同,通過對不同厚度的平板電容器充電至高電平建立時間的捕獲,就可以間接計算出平板電容器之間紙張的數目。

圖2 高電平輸入捕獲原理

圖3 硬件電路
紙張計數裝置的硬件電路主要由阻容電路、STM32F4最小系統、OLED顯示屏、獨立按鍵四部分組成,如圖3所示。由檢測紙張數目的平板電容器和充電電阻構成阻容電路;STM32F4最小系統主要完成對芯片的供電、晶振及下載接口的設計任務;OLED采用SPI接口與單片機連接,用于顯示最終測得的紙張數目;獨立按鍵直接與單片機的GPIO端口相連接,用于測試時的控制按鍵。
基于模塊化設計思想對該計數裝置進行軟件設計。獨立按鍵軟件設計中,為避免干擾,采取軟件消抖程序,用于測試啟動和校準,測試時首先控制平板電容器引腳輸出低電平,使之完全放電,然后啟動定時器,由輸入捕獲模塊對平板電容器引腳的高電平進行捕獲。當捕獲到高電平時,讀取自動重載計數器(CNT)的計數值,換算成所測紙張數目,由OLED顯示模塊顯示紙張數目。程序流程圖如圖4所示。

圖4 程序流程圖
結論:本文概括總結了幾種紙張計數裝置的技術方案,這些方案的共同思想是借助一種檢測裝置將電容容量的變化轉換為頻率的變化,再通過單片機系統檢測頻率值,間接的計算出所測紙張的數目。本方案設計了一種效率較高的紙張計數方案,其基于STM32F4嵌入式單片機,利用單片機通用定時器的輸入捕獲功能,實現電容器充電的高電平邊沿捕獲,通過對充電時間的捕獲,獲得充電時間值,可以直接、方便地計算出所測紙張數目,實驗證明本文提出的方案是一種可行的、測量精確度高的低成本紙張計數設計方案。