• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于ARM-LINUX的物流復(fù)檢系統(tǒng)設(shè)計(jì)

      2014-01-16 05:57:26王明緒
      電子設(shè)計(jì)工程 2014年6期
      關(guān)鍵詞:條碼線程應(yīng)用程序

      王明緒, 靳 果, 桂 博

      (1.河南工業(yè)職業(yè)技術(shù)學(xué)院 河南 南陽 473000;2.鄭州輕工業(yè)學(xué)院 河南 鄭州 450000)

      隨著電子商務(wù)的快速發(fā)展,物流的重要性也日益凸顯,而分揀環(huán)節(jié)在物流系統(tǒng)中是十分關(guān)鍵的。因此,要有效的保證分揀機(jī)構(gòu)的精準(zhǔn)高效運(yùn)行。目前分揀的識(shí)別方式主要靠條形碼識(shí)別,通過光電開關(guān)觸發(fā)條形碼掃描設(shè)備等捕獲條形碼信息,然后由光電開關(guān)信號(hào)以及延時(shí)控制分揀機(jī)完成最終的分揀。但是由于光電開關(guān)的靈敏度,貨物的位置以及條形碼粘貼的質(zhì)量等原因,會(huì)造成物流成本的增加和物流效率的降低,給企業(yè)造成嚴(yán)重的損失。

      可見,提高物流分揀的準(zhǔn)確度變得尤為重要。為了解決分揀系統(tǒng)中的分揀錯(cuò)誤,提高物流的效率,在做了需求分析的基礎(chǔ)上,提出了一種基于ARM-LINUX[1]的物流復(fù)檢系統(tǒng)設(shè)計(jì)方案。該復(fù)檢系統(tǒng)能夠提高物流分揀的準(zhǔn)確度,解決系統(tǒng)的分揀錯(cuò)誤。

      1 總體設(shè)計(jì)

      該復(fù)檢系統(tǒng)通過將安放終端節(jié)點(diǎn)在分揀系統(tǒng)的各個(gè)出線口,通過CAN總線將各個(gè)終端節(jié)點(diǎn)與主控節(jié)點(diǎn)進(jìn)行通信,通過以太網(wǎng)主控節(jié)點(diǎn)可以訪問遠(yuǎn)端數(shù)據(jù)庫服務(wù)器,圖1所示即是整個(gè)復(fù)檢系統(tǒng)的架構(gòu)。終端節(jié)點(diǎn)采用的是居于Cortex-M3內(nèi)核架構(gòu)的STM32F103RBT6處理器,移植RT-Thread作為軟件平臺(tái),通過RS232接口獲取激光掃碼頭讀取到的一維條碼,然后由接口將條碼上報(bào)到主控節(jié)點(diǎn),利用不同的CAN數(shù)據(jù)包ID號(hào)來標(biāo)識(shí)不同的下線口號(hào)。主控通過CAN總線得到不同下線口所對(duì)應(yīng)的終端節(jié)點(diǎn)上報(bào)的條碼信息后,通過以太網(wǎng)查詢局域網(wǎng)內(nèi)的數(shù)據(jù)庫服務(wù)器,并將所查詢項(xiàng)標(biāo)識(shí)為已查詢。在查詢完數(shù)據(jù)庫之后,主控節(jié)點(diǎn)需要根據(jù)結(jié)果刷新圖形界面的顯示,發(fā)出報(bào)警信號(hào),并通知分揀系統(tǒng)的控制系統(tǒng)分揀出錯(cuò)以實(shí)現(xiàn)聯(lián)動(dòng)。

      圖1 基于ARM-LINUX的物流復(fù)檢系統(tǒng)的架構(gòu)Fig.1 Architecture of the logistics recheck system based on ARM-LINUX

      主控節(jié)點(diǎn)還要將查詢結(jié)果返回給對(duì)應(yīng)的終端節(jié)點(diǎn),由其來控制下線口的輸送裝置,執(zhí)行相應(yīng)的動(dòng)作,比如伸縮皮帶機(jī)的運(yùn)停。

      2 終端節(jié)點(diǎn)的設(shè)計(jì)

      2.1 終端節(jié)點(diǎn)的硬件設(shè)計(jì)

      終端節(jié)點(diǎn)被安裝在分揀系統(tǒng)的末端,可以根據(jù)實(shí)際下線口數(shù)配置多個(gè)。終端節(jié)點(diǎn)主要負(fù)責(zé)采集前期分揀后貨物的條碼信息,然后再通過CAN總線上傳給主控節(jié)點(diǎn)。系統(tǒng)結(jié)構(gòu)框圖如圖2所示,它顯示了終端節(jié)點(diǎn)主要的硬件模塊,STM32[2]處理器負(fù)責(zé)控制各個(gè)模塊,對(duì)于終端接口使用的STM32F 103RBT6,為了使其正常工作,至少應(yīng)具備供電電路、復(fù)位電路、時(shí)鐘電路、電源濾波電路、JTAG程序調(diào)試下載電路以及啟動(dòng)模式選擇電路這幾個(gè)部分。STM32需要3.3 V供電,而條碼掃描器和CAN物理層驅(qū)動(dòng)器需要5 V供電,供電模塊的任務(wù)就是為系統(tǒng)提供穩(wěn)定優(yōu)質(zhì)的電源。條碼掃描器使用高速率高精度的激光條碼掃描器,它在下線口處重新采集分揀系統(tǒng)分揀后貨物的條碼信息,通過RS232總線發(fā)送給STM32處理器。CAN模塊是為了和主控節(jié)點(diǎn)取得可靠的通信,傳輸終端節(jié)點(diǎn)上傳的條碼等信息以及主控節(jié)點(diǎn)發(fā)送的控制信息,CAN[3]接口設(shè)計(jì)如圖4所示。皮帶機(jī)模塊是為了根據(jù)主控節(jié)點(diǎn)發(fā)送的控制信息控制下線口出皮帶機(jī)的運(yùn)行。無線模塊和數(shù)據(jù)采集模塊是為了擴(kuò)展系統(tǒng)的功能,無線模塊可以輔助人工控制皮帶機(jī),方便操作人員;數(shù)據(jù)采集模塊可以幫助采集末端設(shè)備工作狀態(tài)、環(huán)境溫度等信息。

      圖2 終端節(jié)點(diǎn)的結(jié)構(gòu)圖Fig.2 Structure diagram of terminal node

      圖3 CAN接口設(shè)計(jì)Fig.3 Interface design of the CAN

      圖4 主控節(jié)點(diǎn)的硬件結(jié)構(gòu)圖Fig.4 Hardware structure diagram of the master node

      2.2 RT-Thread在STM32F103RBT6上的移植

      RT-Thread[4]采用模塊化設(shè)計(jì),不僅僅包含一個(gè)穩(wěn)定高效的實(shí)時(shí)內(nèi)核,更是一套完備的嵌入式系統(tǒng)軟件平臺(tái)。移植過程中采用ARM公司推出的RealView MDK作為系統(tǒng)的開發(fā)工具。目前RealView MDK已經(jīng)集成了業(yè)內(nèi)最領(lǐng)先的技術(shù),囊括了Vision3集成開發(fā)環(huán)境以及RealView編譯器。支持最新的Cortex-M3核處理器,集成Flash燒寫模塊,配有Simulation設(shè)備模擬,性能分析等功能,使之十分適合RTOS的開發(fā)。

      2.3 CAN接口程序設(shè)計(jì)

      為了使CAN模塊能夠正常工作,還要對(duì)其編程來控制其完成指定的任務(wù)。對(duì)CAN的控制通過對(duì)其一系列的寄存器的操作來完成,為了方便對(duì)寄存器組的操作,按照各個(gè)寄存器在內(nèi)存中的相對(duì)地址定義了一個(gè)結(jié)構(gòu)體CAN_TypeDef,將CAN寄存器組基地址CAN_BASE強(qiáng)制類型轉(zhuǎn)換為(CAN_TypeDef*)指針后宏定義為CAN,然后通過CAN指向CAN_TypeDef結(jié)構(gòu)的成員來訪問CAN控制器的相關(guān)寄存器。在硬件復(fù)位以后,CAN控制器進(jìn)入休眠模式以節(jié)省電能。為了正常使用CAN,就需要對(duì)其進(jìn)行初始化,對(duì)CAN的初始化需要在初始化模式中進(jìn)行,通過對(duì)CAN->MCR的INRQ位編程為1來進(jìn)入初始化模式,與此同時(shí)硬件會(huì)置位CAN->MSR的INAK來應(yīng)答。在完成初始化后,復(fù)位CAN->MCR的INRQ位,在CAN與總線取得同步后,進(jìn)入正常模式。正常模式中就可以完成報(bào)文的正常收發(fā)。為發(fā)送報(bào)文,首先要查詢CAN-TSR寄存器,選擇一個(gè)空的郵箱,設(shè)置標(biāo)識(shí)符,數(shù)據(jù)長度,和待發(fā)送數(shù)據(jù),然后將TXRQ置位來請求發(fā)送。由條碼掃描器通過串口發(fā)送過來的條碼格式為ASSIC碼,并且條碼長度也有差異,而一個(gè)CAN數(shù)據(jù)報(bào)文最多發(fā)送八個(gè)字節(jié)的數(shù)據(jù),所以要分多次發(fā)送,最后在條碼數(shù)據(jù)的結(jié)尾加入’/r’和’/n’字符表示一次完整的條碼傳輸。

      2.4 系統(tǒng)應(yīng)用程序的設(shè)計(jì)

      在完成RT-Thread到STM32F103RBT6目標(biāo)平臺(tái)的移植之后,接下來的工作就是開發(fā)系統(tǒng)應(yīng)用程序,來實(shí)現(xiàn)所需要的功能。應(yīng)用程序開發(fā)的第一步就是完成相關(guān)硬件或者外設(shè)的初始化。在RT-Thread中,相關(guān)的初始化工作可以有兩種方法來完成。一種是同一的在board.c文件中編寫對(duì)應(yīng)模塊的初始化函數(shù),并將其放在rt_hw_board_init函數(shù)內(nèi)調(diào)用。另一種方式是放在線程函數(shù)中完成。然后進(jìn)行應(yīng)用線程的開發(fā),采用多線程技術(shù)可以以較小的系統(tǒng)開銷,降低應(yīng)用程序開發(fā)的復(fù)雜度,提高系統(tǒng)的可靠性。RT-Thread以線程為最小的調(diào)度單位,采用基于優(yōu)先級(jí)的全搶占式調(diào)度算法。針對(duì)本應(yīng)用,創(chuàng)建了CAN線程、barcode線程、daemon及deal線程這四個(gè)主要線程,并通過線程間同步和通信方法進(jìn)行它們之間的協(xié)調(diào)。

      3 主控節(jié)點(diǎn)系統(tǒng)的設(shè)計(jì)

      3.1 主控節(jié)點(diǎn)硬件系統(tǒng)的設(shè)計(jì)

      主控節(jié)點(diǎn)是整個(gè)復(fù)檢系統(tǒng)的核心,它主要完成條形碼信息的處理工作,其硬件的結(jié)構(gòu)如圖4所示。主控節(jié)點(diǎn)有多個(gè)模塊組成,各個(gè)模塊所需電源電壓不同,處理器核心、片上外設(shè)模塊所需電壓也不同,這些不同的電壓由供電系統(tǒng)提供。觸摸屏為系統(tǒng)的輸入輸出接口,用來顯示查詢數(shù)據(jù)庫后的條碼信息,接收操作員的輸入命令。CAN模塊由SPI接口的CAN控制器及驅(qū)動(dòng)器組成,用來與終端節(jié)點(diǎn)通信,主控節(jié)點(diǎn)的CAN接口設(shè)計(jì)如圖5所示。為了通過網(wǎng)絡(luò)服務(wù)數(shù)據(jù)庫,配備了以百兆太網(wǎng)通信接口。RS232接口被用為Linux和引導(dǎo)程序的控制臺(tái),用來輔助開發(fā)。LED模塊在實(shí)驗(yàn)中用來模擬向分揀系統(tǒng)控制器通報(bào)分揀錯(cuò)誤。S3C6410作為主控節(jié)點(diǎn)的控制核心還協(xié)調(diào)各個(gè)模塊的工作。

      圖5 主控節(jié)點(diǎn)的CAN接口設(shè)計(jì)Fig.5 Interface design of the CAN on mater node

      3.2 主控節(jié)點(diǎn)軟件系統(tǒng)的設(shè)計(jì)

      主控節(jié)點(diǎn)使用Linux作為其軟件系統(tǒng)平臺(tái),軟件系統(tǒng)的結(jié)構(gòu)如圖6所示。位于最底層的是設(shè)備硬件,為了能夠使用這些設(shè)備,需要開發(fā)相應(yīng)的設(shè)備驅(qū)動(dòng)程序。接著是Linux內(nèi)核和協(xié)議棧,主要有以太網(wǎng)的TCP/IP協(xié)議棧和Socket CAN的協(xié)議棧。Linux提供了統(tǒng)一的編程接口供應(yīng)用程序調(diào)用。為了方便系統(tǒng)開發(fā),應(yīng)用軟件大多使用庫來提高開發(fā)效率,本系統(tǒng)中主要部署了QT庫、C庫以及MySQL庫等。最終的復(fù)檢系統(tǒng)應(yīng)用程序調(diào)用內(nèi)核編程接口和功能強(qiáng)大的各種庫來實(shí)現(xiàn)其功能。目標(biāo)板使用的是ARM S3C6410處理器和Linux操作系統(tǒng),兩者通過以太網(wǎng)和RS232接口連接,采用ARMLINUX-GCC-4.3.2進(jìn)行編譯開發(fā)。選擇XP與Fedora9的網(wǎng)絡(luò)連接方式選擇橋接,XP和Fedora9以及目標(biāo)板需要通過以太網(wǎng)鏈接在一個(gè)局域網(wǎng)中。采用與Linux內(nèi)核源碼一脈相承的U-Boot來對(duì)Bootloader進(jìn)行移植,并對(duì)Linux的內(nèi)核進(jìn)行開發(fā)。最后,對(duì)復(fù)檢系統(tǒng)的應(yīng)用程序進(jìn)行開發(fā),QT是一個(gè)跨平臺(tái)的圖形界面庫,支持Linux、Windows等系統(tǒng),可方便應(yīng)用在嵌入式系統(tǒng)中,另外用戶需要自行設(shè)計(jì)Socket CAN系統(tǒng)。本研究中使用用QT的圖形界面庫來設(shè)計(jì)主控節(jié)點(diǎn)的圖形界面,使用Qt Creator中所見即所得的UI開發(fā)工具設(shè)計(jì)圖像界面[5],界面顯示通過CAN收到的相應(yīng)下線通道的貨物條碼和通道,在查詢數(shù)據(jù)庫后,將查詢到的貨物目的地,運(yùn)輸車輛的號(hào)牌顯示出來。如果發(fā)生錯(cuò)誤,會(huì)彈出QMassageBox警告。主控節(jié)點(diǎn)應(yīng)用程序流程圖如圖7所示。

      4 結(jié)束語

      本文詳細(xì)闡述了物流復(fù)檢系統(tǒng)各個(gè)硬件平臺(tái)和軟件系統(tǒng)的開發(fā),完成了ARM-LINUX的交叉編譯開發(fā)環(huán)境的搭建等。實(shí)際應(yīng)用表明,設(shè)計(jì)的基于ARM-LINUX的物流復(fù)檢系統(tǒng)能夠很好的解決物流分揀系統(tǒng)[6]出現(xiàn)的分揀錯(cuò)誤,極具實(shí)用價(jià)值。而且本文中采用的分揀識(shí)別是條形碼識(shí)別技術(shù),也可以很好的拓展到其他方式,比如電子標(biāo)簽等。

      圖6 主控節(jié)點(diǎn)Linux軟件系統(tǒng)結(jié)構(gòu)Fig.6 Structure of the Linux software system on master node

      圖7 主控節(jié)點(diǎn)應(yīng)用程序流程圖Fig.7 Flow chart of the application program on master node

      [1]楊斌,滿峰,姜秀杰,等.基于ARM-Linux的MAX1303接口與驅(qū)動(dòng)程序設(shè)計(jì)[J].電子設(shè)計(jì)工程,2013,(12):173-176.YANG Bin,MAN Feng,JIANG Xiu-jie,et al.Design of interface and driver for MAX1303 based on ARM-Linux[J].Electronic Design Engineering,2013,(12):173-176.

      [2]董杰,王國豹.基于STM32的智能循跡往返小車設(shè)計(jì)[J].電子設(shè)計(jì)工程,2013,(12):158-160.DONGJie,WANGGuo-bao.Design of intelligent tracking car based on STM32[J].Electronic Design Engineering,2013,(12):158-160.

      [3]錢俊銘,魯可,袁鎖中,等.新型汽車底盤潤滑智能控制器設(shè)計(jì)[J].電子測量技術(shù),2013,36(3):81-83,93.QIAN Jun-ming,LU Ke,YUAN Suo-zhong,et al.Design of new intelligent vehicle chassis lubrication controller[J].Electronic Measurement Technology,2013,36(3):81-83,93.

      [4]涂撰,趙標(biāo).RT-Thread在LPC2378上的移植與應(yīng)用[J].上海船舶運(yùn)輸科學(xué)研究所學(xué)報(bào),2013,36(1):44-49.TU Zhuan,ZHAO Biao.Migration and application of RTThread to LPC 2378[J].Journal of Shanghai Ship and Shipping Research Institute,2013,36(1):44-49.

      [5]Martin Hansen.Choosing a GUI library for your embedded device[M].Linux Jollrnal,Jan.2000.

      [6]霍罡.基于PLC的工件表面檢測與分揀控制系統(tǒng)設(shè)計(jì)[J].微計(jì)算機(jī)信息,2012,28(6):42-43.HUO Gang.Design for the product surface measure and inferior removing system based on PLC[J].Microcomputer Information,2012,28(6):42-43.

      猜你喜歡
      條碼線程應(yīng)用程序
      中國條碼技術(shù)與應(yīng)用協(xié)會(huì)
      條碼微站
      刪除Win10中自帶的應(yīng)用程序
      淺談linux多線程協(xié)作
      基于固定條碼與電子標(biāo)簽比對(duì)設(shè)備的設(shè)計(jì)
      矽感: 打造我國自主知識(shí)產(chǎn)權(quán)的二維條碼
      分析儀器(2013年5期)2013-10-27 03:58:24
      Linux線程實(shí)現(xiàn)技術(shù)研究
      關(guān)閉應(yīng)用程序更新提醒
      電腦迷(2012年15期)2012-04-29 17:09:47
      么移動(dòng)中間件線程池并發(fā)機(jī)制優(yōu)化改進(jìn)
      三星電子將開設(shè)應(yīng)用程序下載商店
      延安市| 虹口区| 望谟县| 巴林左旗| 彰武县| 康定县| 彩票| 甘南县| 抚远县| 余干县| 剑阁县| 安宁市| 安多县| 英吉沙县| 弥渡县| 贵南县| 武安市| 汾阳市| 平遥县| 方正县| 承德县| 克拉玛依市| 新竹县| 临夏市| 武鸣县| 阆中市| 左云县| 志丹县| 东莞市| 潢川县| 铁岭市| 弥勒县| 富裕县| 长汀县| 泽库县| 大安市| 黑水县| 利辛县| 兴仁县| 滨海县| 青川县|