999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于嵌入式系統的現代物流復檢系統設計

2021-01-21 12:35:42王明緒徐穎若
電子設計工程 2021年1期
關鍵詞:嵌入式物流系統

王明緒,徐穎若,桂 博

(1.河南工業職業技術學院,河南 南陽 473000;2.鄭州輕工業大學,河南 鄭州 450000)

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

1 物流復檢系統簡介

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

圖1 復檢系統總體結構

2 終端節點的設計

1)處理器的選擇

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

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

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

3)最小系統

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

表1 系統啟動模式

4)條碼掃描器通信接口

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

圖2 串行通信接口

5)CAN接口

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

圖3 整個CAN接口的設計

3 RT-Thread在STM72F103RBT6上的移植

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

在系統進入臨界區時,需要關閉中斷,以防止線程調度或者中斷到來的打斷,以實現互斥訪問。相對應的,在系統離開臨界區時,就需要打開中斷。在中斷關閉前需要保存當前PRIMASK寄存器的狀態,并在打開中斷時恢復PRIMASK寄存器的狀態。正常模式下進行線程切換時,會觸發一個pendSV異常。異常發生時,Cortex-M7 會自動把 R0~R3,R12、LR、PC.PSR壓入當前線程堆棧,然后再執行pendSV的異常處理程序。在系統正常運行時處在Thread模式,使用的是PSP,而進入異常后處在Handler模式,使用的是MSP。操作系統的移植一直是嵌入式系統開發的難點和重點,需要大量的工作來完成。

4 CAN接口程序設計

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

5 系統應用程序的設計

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

圖4 線程交互圖

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

6 主控節點的設計

1)主控節點CAN接口設計

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

2)主控節點人機接口程序設計

在Fedora9中,使用配置好的集成開發工具Qt Creator進行主控節點應用程序的開發。使用Qt Creator中所見即所得的UI開發工具設計的圖像界面,如圖5所示。界面顯示通過CAN收到的相應下線通道的貨物條碼和通道,在查詢數據庫后,將查詢到的貨物目的地、運輸車輛的號牌顯示出來。如果發生錯誤,會彈出QMassageBox警告。

圖5 物流復檢系統UI界面

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

圖6 主控節點應用程序流程圖

7 結論

在目前的技術條件下,并不能保證分揀機構精準高效地運行,時常會發生分揀錯誤,給物流及其相關領域帶來了巨大的損失。現代社會越來越不能容忍物流分揀中的這種錯誤,因此在該研究中設計了一種基于嵌入式系統[15-16]的物流復檢系統,詳細闡述了物流復檢系統各個環節硬件平臺的設計和軟件系統的開發。研究表明,該系統能夠提高物流分揀的準確度。

猜你喜歡
嵌入式物流系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
本刊重點關注的物流展會
“智”造更長物流生態鏈
汽車觀察(2018年12期)2018-12-26 01:05:44
搭建基于Qt的嵌入式開發平臺
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
基于低碳物流的公路運輸優化
現代企業(2015年2期)2015-02-28 18:45:09
決戰“最后一公里”
商界(2014年12期)2014-04-29 00:44:03
主站蜘蛛池模板: 国产精品不卡永久免费| 农村乱人伦一区二区| 亚洲天堂网视频| 欧美成a人片在线观看| 色噜噜综合网| 国产精品久久久久无码网站| 国产精品污视频| 91久久偷偷做嫩草影院电| 人人爽人人爽人人片| 综合色在线| 免费无码网站| 97精品久久久大香线焦| 午夜在线不卡| 熟妇丰满人妻av无码区| 久久黄色免费电影| 992tv国产人成在线观看| 精品国产欧美精品v| 无码免费视频| 色婷婷色丁香| 国产精品露脸视频| 久久久精品国产SM调教网站| 欧美激情视频二区三区| 五月婷婷伊人网| 另类综合视频| 性视频久久| 国产日韩精品一区在线不卡| 精品福利视频导航| 亚洲成A人V欧美综合天堂| 一级成人a做片免费| 无码专区国产精品一区| 亚洲AV无码乱码在线观看裸奔| 日韩高清欧美| 亚洲精品黄| 国产成人精品一区二区不卡| 精品福利一区二区免费视频| 国产剧情伊人| 亚洲欧美综合另类图片小说区| 乱系列中文字幕在线视频| 欧美一级黄片一区2区| 波多野结衣第一页| 她的性爱视频| 精品人妻无码中字系列| 91区国产福利在线观看午夜| 欧美日韩午夜视频在线观看| 中文国产成人精品久久一| 无码精品福利一区二区三区| 99热这里只有精品5| 国产91蝌蚪窝| 欧美日在线观看| 91精品免费久久久| 国产香蕉在线视频| 国产成人精品亚洲日本对白优播| 国产精品99r8在线观看| 在线观看国产黄色| 91免费国产高清观看| 久久婷婷五月综合色一区二区| 91久草视频| 亚洲成aⅴ人在线观看| 亚洲综合第一区| 国产69精品久久久久孕妇大杂乱 | 国产粉嫩粉嫩的18在线播放91| 亚洲国产欧美中日韩成人综合视频| 亚洲第一在线播放| 少妇精品网站| 精品国产网站| 亚洲无码精品在线播放 | 无码人中文字幕| 亚洲欧美精品一中文字幕| 99热在线只有精品| 男女猛烈无遮挡午夜视频| 日本在线国产| 欧美一级高清视频在线播放| 欧美精品v欧洲精品| 亚洲第一区精品日韩在线播放| 国产香蕉国产精品偷在线观看| 天堂亚洲网| 久久综合伊人 六十路| 国产亚洲精品97AA片在线播放| a天堂视频在线| 色噜噜久久| 免费看av在线网站网址| 亚洲狼网站狼狼鲁亚洲下载|