摘 要: 基于Cortex-M3內(nèi)核的ARM芯片STM32F107構(gòu)建了生產(chǎn)線工作狀態(tài)監(jiān)測終端,包括CAN通信、串口通信、實時時鐘、液晶顯示、工作電源等電路單元。利用CAN總線實現(xiàn)遠程通信,控制室根據(jù)實際需要可切換RS232或RS485與PC機的通信;終端具有非揮發(fā)實時時鐘,以及通過LCM提供了人機對話功能。實驗表明,生產(chǎn)線工作狀態(tài)監(jiān)測終端利用CAN總線能夠?qū)崿F(xiàn)數(shù)據(jù)準(zhǔn)確、快速地傳輸,可適用于各種現(xiàn)場數(shù)據(jù)傳輸?shù)膽?yīng)用場合。
關(guān)鍵詞: STM32F107;μC/OS-II;CAN總線;串口通信
生產(chǎn)流水線在正常運轉(zhuǎn)時,各個工位的工作量或工作強度并不一致,當(dāng)某一工位因缺料、零配件缺陷等各種原因,會導(dǎo)致該工位工作滯后,并需要臨時請求停止運行的現(xiàn)象。然而,目前流水生產(chǎn)線大多都不具備協(xié)同與管理功能,體現(xiàn)在兩個方面:一方面究竟是哪個工位出現(xiàn)了停止請求并予以實時在線指示,以確保各自工位的有序工作進程;另一方面對工位請求停止以及再開機運行的時刻進行實時管理,對管理者提供準(zhǔn)確的生產(chǎn)信息以掌控生產(chǎn)進度。生產(chǎn)線工作狀態(tài)監(jiān)測裝置,可以實時監(jiān)測流水生產(chǎn)線的工作情形,對工位或工序請求暫停以及供電突然斷電等情形進行有效統(tǒng)計,以協(xié)助管理者掌握各工位的工作狀況,合理安排流水線生產(chǎn)進度,提高工作效率,提升電子信息化管理水平。
1 總體方案
生產(chǎn)線工作狀態(tài)監(jiān)測終端采用基于Cortex-M3內(nèi)核的ARM芯片STM32F107為處理核心,構(gòu)建了STM32基本應(yīng)用電路、CAN通信電路、串口通信電路、實時時鐘電路、人機接口電路、工位監(jiān)測、電源電路,其結(jié)構(gòu)框圖如圖1所示。終端分協(xié)調(diào)終端和工位終端。工位終端輻射在對應(yīng)的裝配流水線,實現(xiàn)流水線工位有效信息的采集、傳輸;協(xié)調(diào)終端安裝在現(xiàn)場總線末端以及與計算機臨近的控制箱內(nèi)(一般在控制室),實現(xiàn)現(xiàn)場總線數(shù)據(jù)與計算機數(shù)據(jù)的交換。
CAN總線數(shù)據(jù)傳輸網(wǎng)絡(luò)如圖2所示,當(dāng)工位狀態(tài)變化或者終端掉電時,工位終端將相關(guān)信息通過CAN總線傳輸至協(xié)調(diào)終端[1],協(xié)調(diào)終端接收到數(shù)據(jù)后將接收到的數(shù)據(jù)傳送到PC機中,協(xié)調(diào)終端與PC機的數(shù)據(jù)傳輸根據(jù)實際要求,可以選擇RS232或者通過RS485。當(dāng)上位機有數(shù)據(jù)需要發(fā)送至工位終端時,可通過串口發(fā)送至協(xié)調(diào)終端,再通過CAN總線發(fā)送至相應(yīng)工位終端??紤]到工位終端的時鐘與PC機時鐘需要保持一致,有必要對工位終端定期刷新時鐘,也就是PC機利用CAN網(wǎng)絡(luò)定期對終端中DS1302時鐘芯片重新設(shè)置。
CAN通信使用MCP2551[2-3]芯片作為CAN控制芯片,它的TXD引腳和RXD引腳產(chǎn)生的電平信號傳輸?shù)絊TM32F107的CAN1_TX(PD1)引腳以及CAN1_RX(PD0)引腳。不論是發(fā)送數(shù)據(jù)還是接收數(shù)據(jù),這兩個引腳都配置為中斷引腳,這樣有利于微處理器對數(shù)據(jù)快速、準(zhǔn)確地處理。
串口通信采用SP3845芯片,將計算機的電平轉(zhuǎn)換成STM32F107能識別的電平,從而完成STM32F107與計算機的串口通信[4-5],應(yīng)用中終端與PC機連接時尚需要接入一個RS232/RS485轉(zhuǎn)換器。
實時時鐘DS1302可以對秒、分、時、日、月、星期、年的計數(shù),并能夠?qū)﹂c年天數(shù)自動調(diào)整,年計數(shù)可至2100年。芯片采用主電源和備份電源供電,工作時功耗很低,備用電源為可編程涓流充電,在終端掉電時可以切換至備用電池工作。DS1302與微處理器之間采用同步串行方式通信。
人機接口電路采用320×240點陣的漢字圖形型液晶顯示模塊LM320240TFW,內(nèi)置GB2312碼簡體中文字庫(16×16點陣)、128字符(8×16點陣)、及320×240點陣顯示RAM(GDRAM),可顯示漢字及圖形。LCM屏顯示的內(nèi)容有工位工作狀態(tài),以及現(xiàn)在正申請暫停服務(wù)的工位等。
3 軟件設(shè)計
實時操作系統(tǒng)μC/OS-II是專為嵌入式應(yīng)用設(shè)計的公開源代碼的搶占式實時操作系統(tǒng)[6-8],它把系統(tǒng)軟件分割成多個任務(wù),每個任務(wù)負責(zé)完成相應(yīng)工作,系統(tǒng)功能由多個任務(wù)協(xié)作完成,任務(wù)分配將直接影響軟件編寫效率和系統(tǒng)運行性能。軟件設(shè)計建立了CAN總線通信、串口通信、人機接口等多任務(wù),通過μC/OS-II任務(wù)調(diào)度機制,完成任務(wù)的切換、運行,系統(tǒng)任務(wù)分配如表1所示。
3.1 主程序
生產(chǎn)線工作狀態(tài)監(jiān)測終端的主程序流程如圖4所示,主程序中執(zhí)行所有外設(shè)初始化、μC/OS-II內(nèi)核初始化、μC/OS-II節(jié)拍設(shè)置、多任務(wù)創(chuàng)建、啟動多任務(wù)。其中外設(shè)初始化包括時鐘頻率配置、外設(shè)時鐘使能、中斷配置、GPIO口配置、CAN配置、串口配置、液晶屏初始化配置。創(chuàng)建多任務(wù)前必須先將μC/OS-II內(nèi)核初始化,再進行μC/OS節(jié)拍設(shè)置。啟動μC/OS-II多任務(wù)后,各任務(wù)就由實時操作系統(tǒng)μC/OS-II管理運行。
3.2 CAN配置程序
CAN總線配置包括GPIO口配置以及CAN寄存器設(shè)置。CAN總線用到2個GPIO口,即PD0和PD1,分別對應(yīng)CAN控制芯片MCP2551的引腳名為RXD和TXD。PD0配置為上拉輸入;PD1配置為復(fù)用推挽輸出,同時這2個引腳重映射到CAN復(fù)用功能。CAN寄存器配置就是先對CAN主寄存器進行設(shè)置,包括失能時間觸發(fā)模式、失能自動離線管理、失能自動喚醒模式、報文自動重傳模式、失能接收FIFO鎖定、失能FIFO優(yōu)先級、設(shè)置CAN正常模式、設(shè)置CAN波特率,再對過濾器初始化設(shè)置,包括選擇第0組過濾器、設(shè)置為ID屏蔽模式、設(shè)置為32位屏蔽模式、設(shè)置過濾器ID、設(shè)置過濾器屏蔽ID、選擇第0組FIFO、啟動過濾器。CAN初始化完成后即可CAN正常通信。
3.3 任務(wù)程序
任務(wù)劃分和資源分配如表1所示,其中起始任務(wù)用于創(chuàng)建其他任務(wù),完成創(chuàng)建其他任務(wù)之后將自身掛起。人機接口任務(wù)是對生產(chǎn)流水線上各工位終端的運行狀態(tài)進行顯示,LED指示任務(wù)用于指示當(dāng)前系統(tǒng)是否在正常運行。串口任務(wù)實現(xiàn)的是微處理器與PC機的通信,只運行在協(xié)調(diào)終端中,由串口中斷觸發(fā)串口任務(wù)。在接收到CAN總線上有效的工位終端數(shù)據(jù)時,協(xié)調(diào)終端通過串口將該數(shù)據(jù)上傳至PC機;在接收到PC機有數(shù)據(jù),將該數(shù)據(jù)通過CAN總線傳輸至相應(yīng)的終端。
CAN任務(wù)分為接收任務(wù)和發(fā)送任務(wù),用于接收、發(fā)送CAN總線上的數(shù)據(jù)。協(xié)調(diào)終端接收的是工位終端發(fā)來工位狀態(tài)變化信息的數(shù)據(jù);發(fā)送任務(wù)則是在對DS1302進行時間刷新時,協(xié)調(diào)終端將PC發(fā)來的時間設(shè)置信息傳送至相應(yīng)的工位終端,其流程圖如圖5所示。人機接口任務(wù)與CAN發(fā)送任務(wù)通過標(biāo)志事件組啟動。
4 驗證
利用STM32F107開發(fā)板組建終端網(wǎng)絡(luò),包含工位終端和協(xié)調(diào)終端。終端上電后,待系統(tǒng)完成初始化,液晶屏顯示“流水線生產(chǎn)工位狀態(tài)監(jiān)測終端”“工位運行一切正常”,表明此時終端設(shè)備已完成各類外設(shè)的初始化。
系統(tǒng)正常運行過程中,當(dāng)有工位請求暫停服務(wù)時,液晶屏上顯示現(xiàn)在時刻所有請求暫停的工位,如圖6所示。協(xié)調(diào)終端將請求暫停服務(wù)的工位信息通過串口上傳至PC,上傳信息主要是時間信息和狀態(tài)信息,其中時間信息反映年月日時分秒,狀態(tài)信息“X”和“Y”分別表示請求暫停服務(wù)和恢復(fù)服務(wù)。當(dāng)終端發(fā)生掉電時,終端將有效信息寫入flash,在終端恢復(fù)供電時便將上次掉電的信息發(fā)送至協(xié)調(diào)終端并上傳至PC機。
針對工廠生產(chǎn)流水線工位工作管理狀況,生產(chǎn)線工作狀態(tài)監(jiān)測終端為合理安排生產(chǎn)流水線工作任務(wù)、提高工作效率提供有效的依據(jù)?;贑ortex-M3內(nèi)核的ARM芯片STM32F107作為系統(tǒng)的主控芯片,嵌入μC/OS-II實時操作系統(tǒng),建立多任務(wù),采用CAN總線技術(shù)進行生產(chǎn)流水線工位數(shù)據(jù)傳輸,并根據(jù)具體需要可采用RS232或RS485總線技術(shù)的實現(xiàn)終端與PC機的數(shù)據(jù)傳輸。實際制作表明,基于ARM技術(shù)構(gòu)建的生產(chǎn)線工作狀態(tài)監(jiān)測終端應(yīng)用方案可行,實現(xiàn)了CAN總線數(shù)據(jù)準(zhǔn)確、快速地傳輸,實驗測試效果達到預(yù)期目的,具有較好的市場前景。
參考文獻
[1] 王文虎,李建奇,曾進輝.基于CAN總線的車橋總成數(shù)據(jù)管理系統(tǒng)設(shè)計[J].自動化與儀器儀表,2006(1):12-14.
[2] 周晨業(yè),劉錦高.基于無線控制CAN總線嵌入式傳感器研究與應(yīng)用[J].信息技術(shù),2011(8):180-185.
[3] 劉培國,周希偉,劉志勇.CAN總線智能檢測儀的設(shè)計與實現(xiàn)[J].現(xiàn)代電子技術(shù),2012,35(18):44-46.
[4] 張小貝,周鳳星.基于嵌入式控制器和RS485的智能家居系統(tǒng)[J].電子測量技術(shù),2012,35(8):62-65.
[5] 朱偉.基于RS-485網(wǎng)絡(luò)的單片機遠程系統(tǒng)升級功能設(shè)計[J].電子世界,2012(17):26-27.
[6] 邵貝貝.嵌入式實時操作系統(tǒng)UC/OS-II[M].北京:北京航空航天大學(xué)出版社,2003.
[7] 何雅琴.基于UCOS_II的智能窗系統(tǒng)的設(shè)計[D].上海:華東師范大學(xué),2007.
[8] 沈勇,張海蒂,朱超.基于μC/OS-II的虛擬機模型設(shè)計與實現(xiàn)[J].微計算機信息,2011,27(6):99-100.