谘詢電話

ENGLISH0755-88840386
新聞中心

谘詢電話

0755-88840386
您的位置:首頁 > K8凯发大酒店天生赢家專題 > 專業技術專題 > 工業自動化稱重儀表>詳情頁

基於STM32F407的畜牧車配料稱重儀表的設計

發布時間:2020-10-13 14:01:33 |來源:

在畜牧養殖行業,常需要對多種飼料按科學的比例進行配料,而在大型牧場,若采用傳統的人工稱量配料,會耗費大量的時間。近年來,隨著畜牧養殖業的發展,為了提高養殖效能,許多畜牧養殖場對精準車載配料係統的需求越來越多囚,將配料稱重顯示儀配備在飼養車上,可以在飼養車輛行進過程中邊配料邊喂養,從而節省很多時間,為此要求配料稱重儀表具有高的可靠性和高的配料精度。在此,選用ARM單片機STM32F407,設計了一款能夠在飼養車行進中輸出精準重量的車載配料稱重顯示儀。
1車載配料稱重顯示儀硬件設計
STM32F407單片機是ST公司基於ARMCortexM4內核的微控製器,主頻可達168MHz;片內集成了先進的外設,其可配置的GPIO多達114個,通訊接口有15種:PC,SPI,串行接口、CAN接口、外存接口等,內部的Flash存儲器可用於非易失性數據存儲囲。故在此選用STM32F407作為控製核心,用於接收來自內置信號釆集模塊或外置數字傳感器的數據,檢測儀表按鍵組的狀態,實現各種參數的設置、工作模式的設置、多界麵的切換等,並驅動5
位數碼管顯示。
該儀表結構框圖如圖1所示。STM32F407通過CAN總線接收重量數據,通過按鍵組接收用戶的操作信號,其片內Flash用於存儲儀表參數,LED數碼管用於重量顯示及狀態提示,聲光提醒模塊用於配料提醒及故障提醒,485接口用於驅動點陣式LED大顯示屏,USART接口可用於程序升級,WiFi模塊可用於與管理平台通訊。

儀表結構框圖

圖1儀表結構框圖
Fig.1Instalmentstructureblockdiagram
儀表內置的信號采集模塊,用於采集處理模擬傳感器的信號,其結構框圖如圖2所示,包含信號調理電路、A/D轉換電路、MCU處理及CAN接口電路。信號調理電路將模擬傳感器的mV級信號進行調理放大,A/D轉換電路將調理放大後的信號轉換為數字信號,並將轉換結果輸出給采集模塊MCU進行處理,該MCU將此數字值轉換成重量值,通過CAN接口傳輸給STM32F407。

信號釆集模塊結構框圖

圖2信號釆集模塊結構框圖
Fig.2Structureblockdiagramofsignalacquisitionmodule
若儀表外采用數字傳感器,則不需要信號采集模塊的處理,STM32F407通過CAN接口接收數據即可。CAN收發器的電路原理如圖3所示。

CAN收發器的電路原理圖

電源調理模塊用於給儀表內各模塊及元器件供電。
采用GPIO端口接收來自按鍵組的用戶操作信號。按鍵組含有1個電源開關鍵、5個功能鍵。其中電源開關鍵可實現儀表的一鍵開關機;功能鍵可單獨使用,也可組合使用,用於儀表參數設置、標定、稱重模式設置、多界麵的切換及各流程的狀態切換等。
采用GPIO端口輸出開關量信號,驅動聲光提醒模塊,用於在配料過程中,配料重量接近設置範圍時給配料人員提供聲音提示或燈光提醒。當儀表出現故障時,STM32F407也會驅動聲光報警。
STM32F407通過SPI接口控製LED顯示驅動芯片,驅動LED數碼管顯示,用於顯示稱重模式下
的重量,同時在各界麵的流程控製中進行相應狀態提示。
儀表的485接口電路用於STM32F407與點陣式LED大顯示屏的通訊。通過大顯示屏顯示相關信息。
USART接口用於ISP程序升級。
WiFi模塊可用於將重量上傳至係統管理平台,管理平台也可向儀表發送廣播信息等。當儀表檢測到故障時,可將故障碼通過WiFi發送至平台。
2軟件設計
2.1總體流程
總體流程如圖4所示。儀表在上電對各外設初始化後,讀出Flash內的參數,並使能一鍵開關機電路的電源驅動,通過CAN接口讀取采集模塊的關鍵參數,然後進入主界麵稱重界麵,顯示重量/超載等信息。同時,開啟定時器中斷、CAN中斷,在定時器中斷中每250ms發送1次讀取釆集模塊重量的CAN指令,在CAN中斷中接收來自采集模塊的數據。開啟各按鍵端口的外部中斷,在外部中斷中對按下的功能鍵進行消抖,消抖後對按鍵標誌置1,此時STM32F407結合功能鍵的狀態執行功能操作或狀態切換,並進行各狀態下的顯示;若檢測到開關機鍵長按下,則斷電關機;若未檢測到開關機鍵按下,則在各界麵一直循環下去。
在稱重界麵下,模式0或模式1時,結合Flash存儲的參數對重量修正,將重量/超載等信息進行顯示,並結合功能鍵執行相應的功能操作或狀態切換,也可由功能鍵進入設置界麵。

稱重儀表總體流程圖

在設置界麵下,可進入多參數設置、滿程目標值設置、標定、修正設定、超載門限設定、工作模式設定、稱重單位設定等二級界麵。首先進入菜單選擇界麵,此時結合按鍵可進行二級界麵的選擇;在各二級界麵下,可結合功能鍵執行相應的狀態切換,也可由功能鍵退出設置界麵,進入稱重界麵。同時,在各界麵流程控製中,驅動數碼管進行實時狀態顯7K。
2.2CAN接口編程
由於CAN總線具有可靠性高、功能完善、成本較低等諸多優點,目前已廣泛應用於汽車工業、工業控製等領域間。考慮到其具有可靠的錯誤檢測和出錯處理功能,在此采用CAN接口實現STM32F407與采集模塊的數據傳輸,波特率采用500kb/so
CAN2接口發送1幀數據的程序代碼如下:unsignedcharCAN2_Send_Msg(unsignedchar*msg,unsignedcharlen)//msg:發送數據指針Jen:數據長度(最大為8)
{
unsignedcharmbox;
unsignedshortinti=0;
CanTxMsgTxMessage;
TxMessage.StdId=0x0559;〃標準幀IDTxMessage.RTR=O;//消息類型為數據幀TxMessage.IDE=CAN_ID_STD;//幀格式:標準幀TxMessage.DLC=len;fbr(i=O;i {
TxMessage.Data[i]=msg[i];
}
mbox=CAN_Transmit(CAN2>&TxMessage);//發送
i=0;
while((CAN_TransmitStatus(CAN2,mbox)==CAN_TxStatus_Failed)
&&(i<0XFFF))i++;〃等待發送結束
if(i>=0XFFF)return1;
return0;
(
另外,在數據幀中均增加了校驗數據,接收方收到數據幀進行解析時按照約定的格式計算校驗值,若該校驗結果與數據幀中的校驗數據一致,則做出相應的回複或處理,否則不予處理。
數據幀中的數據約定格式見表1,其中含有幀頭、幀尾、數據、校驗等信息。
2.3流程控製操作錯誤保護
在各一級界麵、二級界麵的流程控製中,各狀態的切換以輸入條件和當前狀態為依據,輸入條件

數據幀中的數據約定格式表

主要是各功能鍵的狀態,另外在不同界麵中還包括其他對應條件。
具體工作過程為:判斷當前外界輸入條件是否滿足當前界麵、當前狀態下的輸入條件,若滿足則狀態轉換為下一狀態;否則停留在當前狀態。
2.4參數存儲保護
為防止Flash內部的參數丟失,釆用備份的方式,將數據分別存儲於2個不同的扇區。
在對參數進行存儲時,首先對待存儲數據進行CRC16校驗,將數據和校驗值存入後,再將數據讀出進行CRC16校驗,將計算所得校驗值與讀出的校驗值進行比對。若相等,說明存儲正確,否則將再次存儲原始參數,重複以上步驟;重複存儲3次仍不能正確存儲,則顯示“Err”提示。
在每次讀取時,先讀出存儲扇區的數據進行CRC16校驗,若計算所得校驗值與讀出的校驗值相等,說明參數正確;否則參數錯誤,則將備份扇區的數據讀出進行判斷,若參數正確則采用該備份數據,並將該數據再次存儲;若參數仍錯誤,則采用程序中預先定義的數組同中的出廠默認參數。
3測試試驗
3.1采集精度測試
該儀表在正式使用前分別接模擬傳感器、比率校準器進行全麵的精度測試,試驗結果見表2。在常溫下,信號源為模擬傳感器時,係統綜合精度為2.2x10』;在-30~70T溫度範圍內,係統綜合精度為5x10%完全可滿足牧場配料的精度要求。

精度測試結果表

3.2振動試驗
在振動試驗機上,采用表3所列的振動頻率、功率譜密度和加速度進行32h的振動試驗,其振動頻譜如圖5所示。振動停止後,儀表仍能正常工作,表明振動對儀表性能無明顯影響。

振動頻率和能量譜密度表

振動頻譜圖

4結論
采用單片機STM32F407實現儀表的多界麵流程控製和CAN通訊釆集,不僅具有較高的可靠性,而且編程采用標準C語言,便於程序的修改與優化。所設計的畜牧車配料稱重儀表具有可靠性高、可操作性強、配料精度高等優點。該設備操作方便,實現了人機對話,目前已在河南某牧場中投入使用。經試驗證明:該儀表工作穩定,可以滿足牧場配料控製的要求。

 

 

文章來源於網絡轉載,侵刪

分享到
網站地圖凱發K8凱發K8凱發K8凱發K8凱發K8