亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于嵌入式系統(tǒng)的現(xiàn)代物流復(fù)檢系統(tǒng)設(shè)計(jì)

        2021-01-21 12:35:42王明緒徐穎若
        電子設(shè)計(jì)工程 2021年1期
        關(guān)鍵詞:嵌入式物流系統(tǒng)

        王明緒,徐穎若,桂 博

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

        分揀系統(tǒng)在現(xiàn)代物流中至關(guān)重要[1],但是在物流實(shí)際運(yùn)行過程中時(shí)常會(huì)出現(xiàn)分揀錯(cuò)誤,導(dǎo)致運(yùn)輸成本增加等。嵌入式微處理器的發(fā)展為嵌入式操作系統(tǒng)的應(yīng)用和發(fā)展提供了物質(zhì)基礎(chǔ)和動(dòng)力之源。當(dāng)前對物流分揀系統(tǒng)的研究主要停留在如何提高分揀系統(tǒng)的分揀速度和識(shí)別度,以及設(shè)備的精度和自動(dòng)化程度上。對于如何減少分揀中出現(xiàn)錯(cuò)誤的方面研究比較少,相關(guān)的研究主要是利用PLC技術(shù)對分揀系統(tǒng)進(jìn)行改造。文中主要研究在現(xiàn)代物流復(fù)檢系統(tǒng)中引入嵌入式技術(shù)[2-4]和終端節(jié)點(diǎn)移植實(shí)時(shí)操作系統(tǒng)RT-Thread[5-7],同時(shí)使用新型的Cortex-M7[8]處理器來提高分揀的準(zhǔn)確度,使分揀系統(tǒng)高效精準(zhǔn)運(yùn)行。

        1 物流復(fù)檢系統(tǒng)簡介

        自動(dòng)分揀系統(tǒng)[9-10]基本都分為輸送裝置、分類裝置、分揀道口和控制裝置這幾個(gè)主要部分,其中分揀機(jī)和貨物數(shù)據(jù)庫是整個(gè)系統(tǒng)的核心。每套系統(tǒng)都有數(shù)個(gè)或者更多的下線口,這是整個(gè)分揀系統(tǒng)的末端,所以該研究開發(fā)的復(fù)檢系統(tǒng)將終端節(jié)點(diǎn)安放于各個(gè)出線口處,各個(gè)終端節(jié)點(diǎn)通過CAN總線與主控節(jié)點(diǎn)通信,主控節(jié)點(diǎn)通過以太網(wǎng)訪問遠(yuǎn)端數(shù)據(jù)庫服務(wù)器,整個(gè)系統(tǒng)的架構(gòu)如圖1所示。

        圖1 復(fù)檢系統(tǒng)總體結(jié)構(gòu)

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

        1)處理器的選擇

        終端節(jié)點(diǎn)所選取的嵌入式微處理器是由意法半導(dǎo)體公司推出的一款基于Cortex-M7的嵌入式ARM處理器,具有與內(nèi)核緊耦合的嵌套向量控制器(NVIC),支持向量中斷及中斷嵌套,中斷時(shí)自動(dòng)保存和恢復(fù)處理器狀態(tài),可以動(dòng)態(tài)調(diào)整優(yōu)先級(jí),特有末尾連鎖和遲來的中斷處理機(jī)制,極大地縮短了中斷延遲。STM72F103RBT6屬于意法半導(dǎo)體推出的STM72系列處理器中的F1系列,即增強(qiáng)型。系列嵌入式微處理器在保持低功耗、低壓操作的基礎(chǔ)上還擁有一流的外設(shè)及超高的性能,并且價(jià)格相對低廉,具有較高的性價(jià)比,利用簡便易用的開發(fā)工具和簡單的架構(gòu)實(shí)現(xiàn)了高度集成。

        2)激光條形碼掃描的選擇

        條碼掃描器被固定在輸送裝置上方,不會(huì)有太大震動(dòng),所以比較適合使用激光條碼掃描器,使用5 V供電,條碼掃描器可以以此為電源。終端節(jié)點(diǎn)選取的處理器有多個(gè)串口,可以很方便地與條碼掃描器通信。這里選用了一款頂然A-2000A型激光條碼閱讀器。這款激光條碼閱讀器采用ROHM 650納米可見激光二極管,顫鏡式掃描模式,最小掃碼精度為0.15 mm,在掃描精度為1.0 mm時(shí)的掃描景深為20~330 mm,掃描寬度為40~330 mm,誤碼率為九百萬分之一。

        3)最小系統(tǒng)

        為了讓終端節(jié)點(diǎn)使用的STM72F103RBT6能夠正常工作,至少應(yīng)具備供電電路、復(fù)位電路、時(shí)鐘電路、電源濾波電路、JTAG程序調(diào)試下載電路以及啟動(dòng)模式選擇電路。系統(tǒng)采用5 V供電,能夠直接為條碼掃描器供電,經(jīng)過三端穩(wěn)壓芯片AMS1117穩(wěn)壓濾波之后,為系統(tǒng)提供3.3 V電源。使用了8 MHz的外部石英晶體振蕩器[11],經(jīng)過內(nèi)部鎖相環(huán)倍頻后處理器提供72 MHz的時(shí)鐘。系統(tǒng)使用低電平復(fù)位,具備程序下載和調(diào)試接口,設(shè)計(jì)的JTAG調(diào)試下載接口能夠支持JTAG和SWD[12]兩種模式。STM72F103RBT6在啟動(dòng)的時(shí)候會(huì)讀取BOOT[1:0]引腳的狀態(tài)來選擇不同的啟動(dòng)模式,各種設(shè)置與啟動(dòng)模式如表1所示。通過設(shè)置BOOT硬件為0(低電平)或1(高電平),對應(yīng)的啟動(dòng)模式的不同物流地址將會(huì)被映射到0地址,即啟動(dòng)存儲(chǔ)區(qū),以實(shí)現(xiàn)從不同的物理介質(zhì)啟動(dòng)。在系統(tǒng)復(fù)位之后,在系統(tǒng)時(shí)鐘的第4個(gè)上升沿,BOOT0和BOOT1引腳的狀態(tài)將被鎖存。用戶可以根據(jù)需要,靈活地設(shè)置不同的啟動(dòng)模式。

        表1 系統(tǒng)啟動(dòng)模式

        4)條碼掃描器通信接口

        A-2000A型激光條碼閱讀器提供了PS2鍵盤接口、USB鍵盤接口和RS232串行接口這3種通信方式,目前使用較多的是USB接口,條碼掃描器被枚舉為HID鍵盤設(shè)備,相當(dāng)于PC標(biāo)準(zhǔn)鍵盤。但是STM72F103RBT6內(nèi)部不帶有USB HOST或者USB OTG接口,無法直接使用USB通信接口,如確有需要,還需另外擴(kuò)展,增加了設(shè)備的復(fù)雜度和研發(fā)成本。從實(shí)際出發(fā),這里選擇使用RS232接口。處理器的USART接口使用的是3.3 V的TTL電平,而條碼掃描器使用的是標(biāo)準(zhǔn)的RS232,所以要利用MAX3232進(jìn)行物理層電平的轉(zhuǎn)換。JP2跳線是為了適應(yīng)交叉或者直連的不同串口連接線。由于條碼掃描器擴(kuò)展了標(biāo)準(zhǔn)RS232接口,可以使用串口連接線供電,所以設(shè)置了JP3來為其提供所需的5 V電壓,串行通信接口如圖2所示。

        圖2 串行通信接口

        5)CAN接口

        STM72F103RBT6[13]內(nèi)部帶有CAN接口控制器,它支持CAN協(xié)議2.0A和2.0B,最高波特率可以達(dá)到1 Mbit/s。整個(gè)CAN接口的設(shè)計(jì)如圖3所示,一片MCP2551實(shí)現(xiàn)了CAN接口的物理層,完成CAN控制器輸入輸出與CAN總線電平的轉(zhuǎn)換。R9為120 Ω的CAN接口終端電阻,是為了實(shí)現(xiàn)CAN總線的阻抗匹配。MCP2551是一個(gè)可容錯(cuò)的CAN協(xié)議控制器和物理總線的接口器件,為CAN協(xié)議控制器提供差分收發(fā)能力,符合ISO-11898標(biāo)準(zhǔn)。它的輸出可以取得最小為45 Ω的負(fù)載,在標(biāo)稱終端電阻為120 Ω時(shí)最多允許接入112個(gè)節(jié)點(diǎn)。MCP2551[14]支持高速、斜率控制和待機(jī)3種操作模式,可以通過Rs硬件進(jìn)行配置,這里選擇將Rs引腳通過電阻接地而使用斜率控制模式。斜率控制模式可以通過對CANL和CANH的下降上升時(shí)間加以限制來進(jìn)一步減少電磁干擾。經(jīng)過反復(fù)試驗(yàn),在10K斜率控制電阻的作用下,CAN接口的性能完全能夠達(dá)到該研究中試驗(yàn)的要求。

        圖3 整個(gè)CAN接口的設(shè)計(jì)

        3 RT-Thread在STM72F103RBT6上的移植

        RT-Thread的系統(tǒng)源代碼結(jié)果,采用模塊化組織方式。include目錄中包含RT-Thread使用的頭文件;src目錄中的文件為實(shí)時(shí)內(nèi)核源代碼,包括調(diào)度器、內(nèi)存管理、對象管理器、進(jìn)程間通信等內(nèi)核組件;components目錄為系統(tǒng)外圍組件,libcpu目錄里面是針對不用CPU的芯片支持包,主要的移植工作都在這里。

        在系統(tǒng)進(jìn)入臨界區(qū)時(shí),需要關(guān)閉中斷,以防止線程調(diào)度或者中斷到來的打斷,以實(shí)現(xiàn)互斥訪問。相對應(yīng)的,在系統(tǒng)離開臨界區(qū)時(shí),就需要打開中斷。在中斷關(guān)閉前需要保存當(dāng)前PRIMASK寄存器的狀態(tài),并在打開中斷時(shí)恢復(fù)PRIMASK寄存器的狀態(tài)。正常模式下進(jìn)行線程切換時(shí),會(huì)觸發(fā)一個(gè)pendSV異常。異常發(fā)生時(shí),Cortex-M7 會(huì)自動(dòng)把 R0~R3,R12、LR、PC.PSR壓入當(dāng)前線程堆棧,然后再執(zhí)行pendSV的異常處理程序。在系統(tǒng)正常運(yùn)行時(shí)處在Thread模式,使用的是PSP,而進(jìn)入異常后處在Handler模式,使用的是MSP。操作系統(tǒng)的移植一直是嵌入式系統(tǒng)開發(fā)的難點(diǎn)和重點(diǎn),需要大量的工作來完成。

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

        為了使CAN模塊能夠正常工作,還要對其編程控制其完成指定的任務(wù)。通過對其一系列的寄存器的操作來完成CAN的控制。在硬件復(fù)位以后,CAN控制器進(jìn)入休眠模式以節(jié)省電能。為了正常使用CAN,就需要對其進(jìn)行初始化,對CAN的初始化需要在初始化模式中進(jìn)行。在初始化函數(shù)中,主要完成對時(shí)間特性寄存器和控制寄存器的設(shè)置,包括CAN的工作模式、相關(guān)中斷、波特率等設(shè)置。此外還有CAN過濾器相關(guān)寄存器的設(shè)置,將過濾器設(shè)置在屏蔽位工作模式。在完成初始化后,復(fù)位CAN->MCR的INRQ位,在CAN與總線取得同步后,進(jìn)入正常模式。正常模式中就可以完成報(bào)文的正常收發(fā)。

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

        在完成RT-Thread到STM72F103RBT6目標(biāo)平臺(tái)的移植之后,接下來就是開發(fā)系統(tǒng)應(yīng)用程序來實(shí)現(xiàn)功能。第一步就是完成相關(guān)硬件或者外設(shè)的初始化,包括CAN接口的初始化,LED的初始化,串口的初始化等。初始化工作完成之后,接下來就是應(yīng)用線程的開發(fā)。采用多線程技術(shù)可以以較小的系統(tǒng)開銷,降低應(yīng)用程序開發(fā)的復(fù)雜度,提高系統(tǒng)的可靠性。RT-Thread以線程為最小的調(diào)度單位,采用基于優(yōu)先級(jí)的全搶占式調(diào)度算法。針對本應(yīng)用,創(chuàng)建了CAN線程、Barcode線程、Daemon線程以及Deal線程這4個(gè)主要線程,并通過線程間同步和通信進(jìn)行相互的協(xié)調(diào)。主要線程間的交互圖如圖4所示。

        圖4 線程交互圖

        用戶線程一般在application.c文件中實(shí)現(xiàn),通過rt_thread_startup函數(shù)向內(nèi)核注冊線程,在系統(tǒng)初始化的時(shí)候,最終會(huì)調(diào)用rt_application_init函數(shù)來初始化各個(gè)線程所使用的資源,完成最終的注冊工作。針對實(shí)際需求,設(shè)計(jì)CAN線程、deal線程、Daemon線程和Barcode這4個(gè)主要線程。其中Daemon線程作為系統(tǒng)的守護(hù)進(jìn)程,監(jiān)控系統(tǒng)的運(yùn)行狀態(tài),完成與其他線程的交互,控制系統(tǒng)的工作流程。當(dāng)Daemon線程接收到USART中斷發(fā)送到郵箱中的郵件,就會(huì)向Barcode線程發(fā)送一個(gè)郵件,通知其進(jìn)行一次USART接口的條碼數(shù)據(jù)接收。Barcode線程在完成一次條碼數(shù)據(jù)接收后,會(huì)根據(jù)是否接收到了特定的字符來判斷是不是接收到了一個(gè)完整的條碼,如果接受到了一個(gè)完整的條碼,就會(huì)向郵箱中發(fā)送郵件,通知CAN線程來向主控節(jié)點(diǎn)發(fā)送條碼數(shù)據(jù)。當(dāng)Barcode線程判斷并沒有接收到一條完整的條碼,就會(huì)將每次接收到的部分條碼數(shù)據(jù)放入條碼緩沖區(qū),直到接收到一條完整的條碼。在Barcode線程完成一條條碼的部分接受工作或者發(fā)生錯(cuò)誤時(shí),就會(huì)主動(dòng)放棄CPU的占有,調(diào)度到Daemon線程。CAN線程的工作就是在接收到Barcode線程發(fā)送到郵箱里的郵件時(shí),通過CAN接口向主控節(jié)點(diǎn)發(fā)送一條完整的條碼,當(dāng)成功發(fā)送完一條條碼,就會(huì)進(jìn)入休眠狀態(tài),進(jìn)而調(diào)度到守護(hù)線程。另外在發(fā)生錯(cuò)誤時(shí),也會(huì)放棄系統(tǒng)資源,Daemon線程就會(huì)得到調(diào)度。在系統(tǒng)接收到CAN發(fā)送過來的固定長度的報(bào)文,就會(huì)發(fā)送郵件通知守護(hù)線程,守護(hù)線程會(huì)解析從主控節(jié)點(diǎn)通過CAN發(fā)送過來的命令。守護(hù)線程在解析完命令后,會(huì)發(fā)送郵件通知Deal線程完成相應(yīng)的動(dòng)作,譬如控制下線口伸縮皮帶機(jī)的工作。

        6 主控節(jié)點(diǎn)的設(shè)計(jì)

        1)主控節(jié)點(diǎn)CAN接口設(shè)計(jì)

        主控節(jié)點(diǎn)使用的嵌入式微處理器S3C6410本身并不帶CAN總線接口,必須利用其他通信接口外擴(kuò)CAN總線接口。該研究中采用的是MCP2510加MCP2551的設(shè)計(jì)方案,兩種芯片出自一家公司,具有較好的兼容性。MCP2510內(nèi)部帶有2個(gè)29字節(jié)的接收屏蔽寄存器和6個(gè)29字節(jié)接收濾波寄存器,可以用來濾除掉不需要的報(bào)文,進(jìn)而最大程度減少微處理器的開銷。MPC2510使用的是8 MHz的外部石英晶體振蕩器,利用電阻的阻抗特性在上電時(shí)完成復(fù)位。MPC2510實(shí)現(xiàn)了CAN協(xié)議中的數(shù)據(jù)鏈路層,是一個(gè)CAN協(xié)議控制器,它的工作是將待發(fā)送數(shù)據(jù)封裝成幀,而這些幀不符合CAN總線的電氣特性,為了把這些幀變成CAN總線上的數(shù)據(jù)流,還需要利用一片物流層的芯片進(jìn)行電氣特性轉(zhuǎn)換,這里采用的是與MCP2510搭配的MCP2551。MCP2551完全滿足ISO-11898協(xié)議標(biāo)準(zhǔn)的物理層需求,能夠支持1 Mb/s的通信速率。并且還帶有斜率控制功能,以減少電磁干擾。它還帶有多種保護(hù)措施并且其電氣特征最大可以支持112個(gè)節(jié)點(diǎn)。MCP2551使用了壓擺率控制模式,以減小電磁干擾。

        2)主控節(jié)點(diǎn)人機(jī)接口程序設(shè)計(jì)

        在Fedora9中,使用配置好的集成開發(fā)工具Qt Creator進(jìn)行主控節(jié)點(diǎn)應(yīng)用程序的開發(fā)。使用Qt Creator中所見即所得的UI開發(fā)工具設(shè)計(jì)的圖像界面,如圖5所示。界面顯示通過CAN收到的相應(yīng)下線通道的貨物條碼和通道,在查詢數(shù)據(jù)庫后,將查詢到的貨物目的地、運(yùn)輸車輛的號(hào)牌顯示出來。如果發(fā)生錯(cuò)誤,會(huì)彈出QMassageBox警告。

        圖5 物流復(fù)檢系統(tǒng)UI界面

        創(chuàng)建好UI界面之后,Qt Creator會(huì)為其生成一個(gè)界面類MainWindow。在私有數(shù)據(jù)部分添加Socket CAN所用到的數(shù)據(jù),建立各個(gè)通道存放條碼數(shù)據(jù)的緩沖區(qū)。此外,為MainWindow創(chuàng)建按鍵和Socket CAN接收所用到的私有插槽。在MainWindow的構(gòu)造函數(shù)中完成數(shù)據(jù)和圖形界面的初始化,并完成SocketCAN接收數(shù)據(jù)的準(zhǔn)備工作。整個(gè)應(yīng)用程序的工作流程,如圖6所示。應(yīng)用程序開始工作后,會(huì)對用到的軟硬件資源進(jìn)行初始化,完成圖形界面的初始化、私有數(shù)據(jù)的初始化、SocketCAN通信的準(zhǔn)備工作還有數(shù)據(jù)的連接等。在初始化完成之后,應(yīng)用程序會(huì)進(jìn)入信號(hào)-插槽循環(huán),根據(jù)系統(tǒng)發(fā)送的不同信號(hào)完成不同的工作。但收到SocketCAN信號(hào),就會(huì)處理從can0接收到的條碼數(shù)據(jù),查詢數(shù)據(jù)庫并返回結(jié)果。如果是觸摸屏輸入信號(hào),例如復(fù)位通道1,軟件就會(huì)清空通道1的條碼緩沖,重新開始一次分撥任務(wù)。如果接收到的是退出信號(hào),應(yīng)用就會(huì)退出執(zhí)行,釋放使用到的軟硬件資源。在系統(tǒng)正常工作時(shí),復(fù)檢應(yīng)用程序需要開機(jī)后自動(dòng)開始執(zhí)行,并且QT應(yīng)用程序的執(zhí)行需要腳本來建立一系列的環(huán)境變量。

        圖6 主控節(jié)點(diǎn)應(yīng)用程序流程圖

        7 結(jié)論

        在目前的技術(shù)條件下,并不能保證分揀機(jī)構(gòu)精準(zhǔn)高效地運(yùn)行,時(shí)常會(huì)發(fā)生分揀錯(cuò)誤,給物流及其相關(guān)領(lǐng)域帶來了巨大的損失。現(xiàn)代社會(huì)越來越不能容忍物流分揀中的這種錯(cuò)誤,因此在該研究中設(shè)計(jì)了一種基于嵌入式系統(tǒng)[15-16]的物流復(fù)檢系統(tǒng),詳細(xì)闡述了物流復(fù)檢系統(tǒng)各個(gè)環(huán)節(jié)硬件平臺(tái)的設(shè)計(jì)和軟件系統(tǒng)的開發(fā)。研究表明,該系統(tǒng)能夠提高物流分揀的準(zhǔn)確度。

        猜你喜歡
        嵌入式物流系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無人機(jī)系統(tǒng)
        ZC系列無人機(jī)遙感系統(tǒng)
        北京測繪(2020年12期)2020-12-29 01:33:58
        本刊重點(diǎn)關(guān)注的物流展會(huì)
        “智”造更長物流生態(tài)鏈
        汽車觀察(2018年12期)2018-12-26 01:05:44
        搭建基于Qt的嵌入式開發(fā)平臺(tái)
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
        基于低碳物流的公路運(yùn)輸優(yōu)化
        決戰(zhàn)“最后一公里”
        商界(2014年12期)2014-04-29 00:44:03
        精品欧洲av无码一区二区14| 精品日本免费观看一区二区三区| 欧美视频久久久| 久久AV中文综合一区二区| 日韩国产精品一本一区馆/在线| 国产免费三级三级三级| 久久精品一区二区三区夜夜| 国产色av一区二区三区| 中文字日产幕码三区的做法大全 | 日本师生三片在线观看| 国产亚洲精品成人aa片新蒲金 | 一区二区三区手机看片日本韩国 | 国产成人综合久久精品推| 丰满人妻中文字幕乱码| 亚洲精品国产成人久久av盗摄| 国产精品成人无码久久久久久| 国模无码一区二区三区| 最近中文av字幕在线中文| 亚洲欧洲久久久精品| 国产小视频一区二区三区| 国产自拍偷拍视频免费在线观看| 刺激一区仑乱| 久久精品一区二区三区av| 色噜噜狠狠色综合欧洲| 在线观看国产一区二区av| 亚洲视频在线观看| 国产人成精品综合欧美成人| 日韩丝袜人妻中文字幕| 亚洲一区二区在线观看网址| 亚洲av无码精品国产成人| 欧美丰满熟妇bbbbbb百度| 日韩精品一区二区三区毛片| 亚洲国产精品一区亚洲国产| 婷婷丁香开心五月综合| 无码人妻久久一区二区三区免费丨 | 精品无码专区久久久水蜜桃| 最新国产美女一区二区三区| 精品三级国产一区二区三| 久久无码字幕中文久久无码| 幻女bbwxxxx在线视频| 亚洲视频高清|