摘 要: 基于Cortex-M3內(nèi)核的ARM芯片STM32F107所構(gòu)建的車橋追溯管理系統(tǒng)終端,,采用以太網(wǎng)進(jìn)行數(shù)據(jù)傳輸,嵌入μC/OS-II實(shí)時(shí)操作系統(tǒng)和LwIP協(xié)議棧,,實(shí)現(xiàn)多任務(wù)的管理,,優(yōu)化數(shù)據(jù)的傳輸。實(shí)驗(yàn)表明,,終端系統(tǒng)穩(wěn)定,,人機(jī)對(duì)話界面友好,數(shù)據(jù)能快速,、大量,、有效傳輸,具有很好的應(yīng)用前景,。
關(guān)鍵詞: 車橋總成,;STM32F107;以太網(wǎng),;μC/OS-II,;LwIP協(xié)議棧
車橋生產(chǎn)企業(yè)錄入VIN編碼時(shí),經(jīng)常發(fā)生人為失誤,,如工人在記錄時(shí)的字跡模糊不清、錄入員在錄入時(shí)的操作過(guò)失,、遺漏單據(jù)等現(xiàn)象,,阻礙了整個(gè)車橋安裝進(jìn)程的進(jìn)度,降低了勞動(dòng)生產(chǎn)率,,直接影響著企業(yè)的經(jīng)濟(jì)效益[1],。至此,,實(shí)時(shí)錄入工位車橋總成信息的終端具有應(yīng)用的現(xiàn)實(shí)意義。由STM32F107構(gòu)建的車橋追溯管理系統(tǒng)終端,,通過(guò)以太網(wǎng)進(jìn)行數(shù)據(jù)傳輸,,同時(shí)嵌入μC/OS-II實(shí)時(shí)操作系統(tǒng)實(shí)現(xiàn)多任務(wù)管理,將工位總成信息傳至PC機(jī)以進(jìn)行統(tǒng)一管理,。
1 總體方案
終端采用基于Cortex-M3內(nèi)核的ARM芯片STM32F107為處理器,,構(gòu)建STM32應(yīng)用電路、以太網(wǎng)通信電路,、人機(jī)接口電路,、指示報(bào)警電路、電源電路,,結(jié)構(gòu)框圖如圖1所示,。終端分為上橋終端與工位終端。工位終端安裝在裝配流水線的相關(guān)工序?qū)?yīng)的工位,,實(shí)現(xiàn)流水線工位有效信息的錄入,;上橋終端安裝在裝配流水線的上橋工位,實(shí)現(xiàn)總成橋類型,、數(shù)量按當(dāng)班總調(diào)度的要求實(shí)時(shí)調(diào)度與控制,。
終端的數(shù)據(jù)傳輸方式如圖2所示。PC機(jī)作為以太網(wǎng)
2 硬件設(shè)計(jì)
終端硬件分為STM32應(yīng)用單元,、以太網(wǎng)通信單元,、人機(jī)接口單元、指示報(bào)警單元等,。
2.1 STM32應(yīng)用單元
STM32F107是一款性價(jià)比極高的微控制器,,它集成了豐富的外圍功能模塊,可滿足多種應(yīng)用場(chǎng)合,,適宜于實(shí)時(shí)控制[2],。STM32的系統(tǒng)時(shí)鐘可來(lái)自3個(gè)不同的時(shí)鐘源,本終端采用HSE時(shí)鐘為高速外部時(shí)鐘信號(hào),,通過(guò)OSC_IN接入一個(gè)最高為25 MHz占空比為50%的外部時(shí)鐘信號(hào)提供系統(tǒng)所需的時(shí)鐘基準(zhǔn),。復(fù)位方式為系統(tǒng)外部復(fù)位,通過(guò)按下獨(dú)立按鍵,,向NRST引腳輸入低電平,,完成復(fù)位。STM32的內(nèi)核集成了串行線/JTAG調(diào)試接口用于接調(diào)試器,,便于程序的調(diào)試,。
2.2 以太網(wǎng)通信單元
以太網(wǎng)通信電路,如圖3所示。通過(guò)STM32F107的MAC接口與以太網(wǎng)驅(qū)動(dòng)芯片DP83848構(gòu)成的的PHY(物理層)接口相連接,,再與網(wǎng)絡(luò)變壓器,、RJ45插槽相連接,從而實(shí)現(xiàn)網(wǎng)絡(luò)通信,。STM32F107以太網(wǎng)模塊支持兩種模式接口:獨(dú)立介質(zhì)接口(MII)和簡(jiǎn)化獨(dú)立介質(zhì)接口(RMII)[3],。設(shè)計(jì)選擇獨(dú)立介質(zhì)接口(MII),它需要16根數(shù)據(jù)和控制信號(hào)的引腳,,支持10 Mb/s,、100 Mb/s數(shù)據(jù)傳輸。
DP83848C是一款高性能的滿足10M/100M單接口的PHY物理層元器件,,它具有低電壓損耗特性,,同時(shí)提供幾種智能休眠模式,這樣可以減少電能的消耗,,提高元器件的可靠性[3],。通過(guò)配置DP83848C的MII_MODE引腳為0,SNI_MODE引腳任意,,選擇為MII模式,。AN_EN、AN_0,、AN_1引腳上拉3.3 V,,自動(dòng)協(xié)商功能使能,且支持10BASE_T半/全雙工和100BASE_TX半/全雙工兩種傳輸方式,。PHY的物理地址由PHYAD[0:4]引腳確定,,PHYAD[0]引腳內(nèi)部有弱上來(lái)電阻,PHYAD[4:1]引腳有弱下拉電阻,,所以PHY地址默認(rèn)為00001(01h),。
2.3 其他單元
人機(jī)接口單元包括PS2鍵盤電路與LCM屏電路,主要用于人機(jī)信息的交互,。指示報(bào)警單元利用LED燈和蜂鳴器對(duì)終端的運(yùn)行情況進(jìn)行指示,、報(bào)警,包括網(wǎng)絡(luò)連接診斷指示,、以太網(wǎng)通信指示,、終端運(yùn)行狀況指示和硬件錯(cuò)誤指示,當(dāng)終端出現(xiàn)硬件錯(cuò)誤與通信錯(cuò)誤時(shí),,除了LED外,,報(bào)警電路的蜂鳴器同時(shí)響起。電源單元采用美國(guó)國(guó)家半導(dǎo)體LM2576HVS-3.3芯片將直流+48 V轉(zhuǎn)換為直流+3.3 V,,為整個(gè)終端提供可靠,、穩(wěn)定的電能,。
3 軟件設(shè)計(jì)
軟件上嵌入μC/OS-II實(shí)時(shí)操作系統(tǒng)[4],建立以太網(wǎng)通信,、人機(jī)接口、指示報(bào)警,、終端選擇等任務(wù),,通過(guò)μC/OS-II任務(wù)調(diào)度,完成任務(wù)的切換與運(yùn)行,。嵌入LwIP協(xié)議棧,,實(shí)現(xiàn)TCP/IP協(xié)議層的構(gòu)建。
3.1 LwIP協(xié)議棧移植
μC/OS-II是一個(gè)開(kāi)放源碼的實(shí)時(shí)操作系統(tǒng),,它只是一個(gè)實(shí)時(shí)的任務(wù)調(diào)度及通信內(nèi)核,,缺少對(duì)外圍設(shè)備和接口的充分支持[5]。而LwIP TCP/IP在保持TCP協(xié)議主要功能的基礎(chǔ)上減少對(duì)RAM的占用,,一般它只需要幾十KB的RAM和約40 KB的ROM就可以運(yùn)行,,這使LwIP協(xié)議棧適合在低端嵌入式系統(tǒng)中使用。它與系統(tǒng)其他部分的相對(duì)位置關(guān)系如圖4所示,。
sys_arch.h中的內(nèi)容是與OS相關(guān)的一些結(jié)構(gòu)和函數(shù),,分為四個(gè)部份:
(1)sys_sem_t數(shù)據(jù)結(jié)構(gòu)及信號(hào)量函數(shù)
struct sys_sem_t,;sys_sem_new(),;
sys_sem_free();sys_sem_signal(),;
sys_arch_sem_wait(),;
(2)sys_mbox_t消息函數(shù)
sys_mbox_new(),;sys_mbox_free(),;
sys_mbox_post();sys_arch_mbox_fetch(),;
?。?)系統(tǒng)超時(shí)函數(shù)
struct sys_timeouts*
sys_arch_timeouts(void)
(4)創(chuàng)建新線程函數(shù)
void sys_thread_new(void(*thread)(void*arg),,void*arg),;
3.2 任務(wù)劃分和資源分配
μC/OS-II是專為嵌入式應(yīng)用設(shè)計(jì)的公開(kāi)源代碼的搶占式實(shí)時(shí)操作系統(tǒng),它把系統(tǒng)軟件分割成多個(gè)任務(wù),,每個(gè)任務(wù)負(fù)責(zé)完成相應(yīng)工作,,系統(tǒng)功能由多個(gè)任務(wù)協(xié)作完成[6]。任務(wù)分配方案的好壞將直接影響軟件編寫效率和性能,,系統(tǒng)任務(wù)分配如表1所示,。在起始任務(wù)中建立了一系列的郵箱信號(hào)來(lái)協(xié)調(diào)各個(gè)任務(wù)的運(yùn)行,資源分配如表2所示。
終端μC/OS-II系統(tǒng)設(shè)置為每隔50 ms進(jìn)行一次任務(wù)切換,,以太網(wǎng)任務(wù)用于以太網(wǎng)數(shù)據(jù)的發(fā)送與接收,;終端選擇任務(wù)是通過(guò)功能按鍵中斷觸發(fā)來(lái)選擇任務(wù),進(jìn)入終端選擇界面之后,,根據(jù)界面的提示,,通過(guò)PS2鍵盤選擇終端類型;人機(jī)接口任務(wù)主要完成人機(jī)信息的交互,;指示報(bào)警任務(wù)則是最終端的運(yùn)行狀況進(jìn)行檢測(cè),、指示、報(bào)警,。
在μC/OS-II平臺(tái)下,,各個(gè)任務(wù)對(duì)資源的申請(qǐng),以及任務(wù)間的通信通過(guò)操作系統(tǒng)的消息管理模塊來(lái)進(jìn)行,,可保證任務(wù)與任務(wù)之間的耦合性最小,,增加了系統(tǒng)的穩(wěn)定系數(shù)。
3.3 以太網(wǎng)通信任務(wù)
STM32F107的以太網(wǎng)模塊支持通過(guò)以太網(wǎng)收發(fā)數(shù)據(jù),,符合IEEE 802.3-2002標(biāo)準(zhǔn),,通過(guò)外接的PHY接口,支持10 Mb/s,、100 Mb/s秒的數(shù)據(jù)傳輸速率,。
(1)以太網(wǎng)任務(wù)初始化,。針對(duì)此任務(wù)的變量,、標(biāo)志位以及LwIP協(xié)議棧初始化,其包括Heap型內(nèi)存初始化,,Pool型內(nèi)存初始化,,網(wǎng)絡(luò)配置初始化,宏定義初始化等,。
?。?)以太網(wǎng)數(shù)據(jù)發(fā)送與接收。上橋終端發(fā)送給工位終端的橋號(hào)先傳給PC機(jī),,再由PC機(jī)轉(zhuǎn)發(fā)給工位終端,。如果由上橋終端直接發(fā)送給工位終端,則上橋終端既作服務(wù)器,,又做客服端,,這樣增加了終端程序的任務(wù)量,至此,,將更多的數(shù)據(jù)傳輸交給PC機(jī),,充分利用PC機(jī)的高效性,。以太網(wǎng)的數(shù)據(jù)在以太網(wǎng)中斷程序接收,通過(guò)μC/OS-II建立的以太網(wǎng)郵箱,,將接收到的數(shù)據(jù)以郵件的形式“投遞”到以太網(wǎng)任務(wù)進(jìn)行處理,。有以太網(wǎng)郵件的到來(lái)才會(huì)激活以太網(wǎng)任務(wù),否則,,以太網(wǎng)任務(wù)一直處于掛起狀態(tài),。根據(jù)終端的類型將接收到的有效數(shù)據(jù)存儲(chǔ)至STM32F107自帶的Flash中,防止掉電意外丟失,。同時(shí)對(duì)數(shù)據(jù)進(jìn)行處理,通過(guò)以太網(wǎng)發(fā)送到相應(yīng)的PC或者終端中,。以太網(wǎng)通信任務(wù)流程圖如圖5所示,。
終端上電后,如果是第一次啟動(dòng),,尚未選擇終端類型,,需要按下功能鍵,程序會(huì)自動(dòng)進(jìn)入終端選擇界面,,通過(guò)PS2鍵盤選擇相應(yīng)的終端,,工位終端的選擇。
利用“網(wǎng)絡(luò)調(diào)試助手軟件”模擬上位機(jī)軟件,,用來(lái)發(fā)送和接收各終端的信息,。終端作為客戶端,PC機(jī)作為服務(wù)器,。在“網(wǎng)絡(luò)調(diào)試助手軟件”對(duì)話框中設(shè)置好IP號(hào),、端口號(hào),等待各終端的連接,,各終端成功連接之后便可以進(jìn)行數(shù)據(jù)傳輸,。上橋終端接收到VIN碼后,將其顯示在液晶屏上,,通過(guò)PS2鍵盤的確認(rèn)鍵,,每按一次,就發(fā)送一組VIN碼給工位終端,。工位終端接收到VIN碼后,,進(jìn)入錄入數(shù)據(jù)界面,如圖7所示,。輸入工序數(shù),,確認(rèn)無(wú)誤后,再依次輸入分成號(hào),、工序號(hào),、操作者號(hào),,點(diǎn)擊確認(rèn)鍵,數(shù)據(jù)通過(guò)以太網(wǎng)上傳給PC機(jī),。
車橋追溯管理系統(tǒng)終端結(jié)合μC/OS-II和以太網(wǎng)技術(shù)技術(shù)實(shí)現(xiàn)了數(shù)據(jù)遠(yuǎn)程與實(shí)時(shí)傳輸,。μC/OS-II實(shí)時(shí)操作系統(tǒng)的嵌入,大大提高了微處理器利用效率,;多任務(wù)的建立,,既加強(qiáng)了各外設(shè)的聯(lián)系,又優(yōu)化了以太網(wǎng)數(shù)據(jù)的傳輸,。實(shí)驗(yàn)表明,,此終端系統(tǒng)穩(wěn)定,人機(jī)對(duì)話界面友好,,以太網(wǎng)數(shù)據(jù)能快速,、有效傳輸,具有廣闊的市場(chǎng)前景,。
參考文獻(xiàn)
[1] 王文虎,,李建奇,曾進(jìn)輝.基于CAN總線的車橋總成數(shù)據(jù)管理系統(tǒng)設(shè)計(jì)[J].自動(dòng)化與儀器儀表,,2006(1):12-14.
[2] 黃鄭.?dāng)U展STM32系列續(xù)寫32位微控制器優(yōu)勢(shì)[J].電子設(shè)計(jì)應(yīng)用,,2008,1(7):4-6.
[3] 宋鑫,,郭勇,,謝興紅.RMII模式以太網(wǎng)PHY芯片DP83848C的應(yīng)用[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2010(8):43-45.
[4] 邵貝貝.嵌入式實(shí)時(shí)操作系統(tǒng)UC/OS-II[M].北京:北京航空航天大學(xué)出版社,,2003.
[5] 焦海波.TCP/IP協(xié)議棧LwIP的設(shè)計(jì)與實(shí)現(xiàn)[J].信息與控制,,2000,29(2):12-14.
[6] 何雅琴.基于UCOS_II的智能窗系統(tǒng)的設(shè)計(jì)[D].上海:華東師范大學(xué),,2007.