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