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