漿液型電磁流量計的探討 八
3. 2 軟件實現
軟件設計采用模塊化設計方案,將完成特定功能或類似功能的子程序組合成功能模塊,主要功能模塊有: 初始化模塊、驅動模塊、數據處理模塊、通訊模塊、人機接口模塊、看門狗模塊等,由主程序統一調用和協調各模塊正常有序工作。
初始化模塊負責系統內F2812、過程參數變量及各外設初始工作狀態的初始化。系統將軟件程序下載至內部Flash 中,并在系統初始化時將調用頻繁的子程序從Flash 中拷貝到內部RAM 中運行以提高程序執行效率。外設初始化主要包括系統中各模塊的工作狀態的初始化,如采集模塊ADC 的同步啟動、偏置調整的初始輸出及驅動、通訊的初始化等。
驅動模塊主要為勵磁控制,由F2812 結合時序邏輯電路實現。單頻勵磁時,勵磁控制僅由GP Timer4 控制;雙頻勵磁時,勵磁控制由定時器GP Timer3 和GP Timer4控制。系統初始化后,插入相應定時器啟動程序即可進行勵磁控制,而無需CPU 干預。
數據處理模塊主要包括數據采集、流量計算和偏置調整三個子模塊。數據采集通過捕獲中斷( CAP1) 通知CPU 讀取數據,由GPIOA8 /9 模擬SPI 功能來同步讀取傳感器信號和勵磁電流的轉換結果。偏置調整則通過設置上下門限,當信號最大幅值超過上門限或其最小幅值低于下門限時,則計算偏置調整量并由SPI 控制偏置調整電路DAC 輸出將其基準拉回至0。流量計算則采用通訊模塊采用SCI 接收中斷方式監聽上位機控制指令,在與上位機數據交互中采用FIFO 模塊進行數據信息批量處理,并根據上位機指令動態調整FIFO 級數以提高系統自身通訊效率。SCI 通訊波特率由上位機設定,系統中F2812 采用自動偵測的方式設置波特率。
人機接口模塊用于液晶刷新、顯示切換及參數修改等; 看門狗模塊為防止系統“死機”,系統啟用F2812 內部自帶的看門狗模塊。
電磁流量計