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