賈茹桑國明
(大連海事大學信息科學技術學院大連116026)
基于CAN總線的密集架智能倉儲系統設計
賈茹桑國明
(大連海事大學信息科學技術學院大連116026)
論文介紹了一種基于CAN總線的密集架智能倉儲系統的軟硬件設計方案,該系統由上層PC機和下層密集架系統兩部分構成。下層系統采用C8051F系列單片機為主控制器,自定義了應用層通信協議及通信命令格式。用戶通過安裝在PC機中的管理系統軟件,或者下層密集架系統中的按鍵板和觸摸屏,實現對存儲物的日常管理和密集架的智能控制。
密集架;CAN總線;C8051F;通信協議
Class NumberTH402
CAN現場總線以其結構簡單、穩定性好、抗干擾能力強、擴展性和開放性好、具有良好的故障隔離能力以及成本低廉的卓越性能,在各種現場總線控制系統競爭中占有重要地位,應用廣泛[1~2]。將其應用于存儲量大、操作簡便、節約空間、安全性高的密集架智能倉儲系統[3~5]中,不僅可以提供實時可靠的通信支持,而且能夠滿足現代物流管理的要求,對推動倉儲物流行業的發展具有重大現實意義。
密集架智能倉儲系統由以下四部分功能組成[6]:
1)數據庫管理功能:實現存儲物信息的錄入、查詢、修改、數據庫備份和還原;
2)用戶管理功能:為不同用戶設置不同等級的權限,保障存儲物信息安全及存儲物實體安全,包括用戶管理、用戶登錄和密碼修改功能;
3)密集架控制功能:上位機PC提供友好便捷的用戶界面進行人機交互,能與各組密集架的固定列控制器進行通信,由此實現對密集架的打開、關閉、停止、通風、鎖定、解鎖及狀態監控功能,并能對密集架上的各種傳感器采集信息進行分析、處理、顯示、輸出,并能通過動畫直觀顯示系統運動狀態;
4)各種輔助功能,如系統基礎設置,條碼管理,自助打印功能。
根據上述系統功能的分析,將下層密集架系統分成六個部分:信號板、固定列板、移動列板、固定列按鍵板、移動列按鍵板、指示燈板。其中,信號板電路和固定列電路、固定列按鍵板電路和移動列按鍵板電路在硬件設計上大致相同,只是程序上有所不同。信號板、固定列板處理器芯片采用的是Silicon Labs公司的C8051F系列單片機C8051F040,其他幾個電路板部分均采用C8051F020[7~8]。
信息管理系統與密集架系統之間通過信號板完成信息的傳輸。信號板與上位機通過RS232串口進行通信,與密集架系統固定列通過CAN總線進行通信。固定列與移動列之間、移動列與移動列之間通過CAN總線進行通信,按鍵板與固定列、移動列和指示燈板之間通過RS232串口通信。系統的總體設計結構圖如圖1所示。

圖1 系統總體設計結構圖
密集架系統工作的觸發源有以下四個:
1)桌面計算機程序:能夠下發操作密集架的所有指令,指令通過RS232串口發出,由信號板接收后,再通過CAN總線分發給固定列和移動列。
2)按鍵板上的按鍵或觸摸屏:觸發指令控制本區各列的打開、關閉、加電、斷電、通風、停止、鎖定、解鎖等動作。
3)同區列間紅外感應:同區列間紅外感應能使正在移動的密集架進入靜止狀態。
4)直流電機過載感應:當電機工作出現過載感應時,電機停止動作進入靜止狀態。
3.1 固定列電路部分
固定列板控制接口圖如圖2所示。MCU的主要外圍芯片包括:溫濕度傳感器AM2301、獨立的CAN控制器SJA1000[9]、高速CAN總線驅動器TJA1040、多通道RS232驅動器/接收器MAX232EPE、繼電器等。由于使用的C8051F040內部帶有控制器局域網(CAN)控制器,因此,在C8051F040的CANTX和CANRX引腳上連接TJA1040,即可實現與其他固定列板或信號板CAN串行通信。將SJA1000與TJA1040配合使用,連接到MCU的P7.0~P7.7引腳,可與移動列電路板通信,控制本區架體按順序運動。按鍵板與固定列板通過MAX232EPE相連,按鍵板上包括:320240液晶顯示屏、按鍵、指示燈、LED數碼管、指示燈板接口。按鍵板與指示燈板通過MAX232實現串口UART通信。繼電器控制移動列220V電源。信號板、各電路板之間用網線進行連接。

圖2 固定列板控制接口圖
3.2 移動列電路部分
移動列板控制接口圖如圖3所示,移動列板MCU的主要外設包括:架體之間的電感式接近開關(霍爾開關)、安全保護開關(光電開關)、直流電機、日光燈、與其他移動列或固定列CAN通信接口、移動列按鍵板。限位開關的閉合信號反饋架體位置信息。系統應用光耦PC817隔離輸入I/O信號與數字信號。電機控制電路采用無刷直流電機控制器MC33035作為主控芯片,采用MOC3023和BTA08控制日光燈。

圖3 移動列板控制接口圖
4.1 系統軟件開發環境
系統軟件由上層信息管理系統軟件和下層密集架系統軟件組成。上層人機交互界面采用MFC編寫,與下層系統通信需要對串口編程。由于MSCOMM控件依賴于消息循環,需要有對話框作為宿主,使得編寫使用串口的后臺服務幾乎不可能。因此本系統PC機串口通信使用基于Windows API和C++的串口類CSerial類,它的功能均以源代碼提供,方便開發[10]。采用ADO數據庫訪問技術和Microsoft Access 2002關系數據庫開發工具。下層密集架系統軟件調試環境為Silicon Laboratories IDE,它與Keil C51系列開發工具集成,形成使用C51語言進行單片機開發的強大接口,具有完整的項目管理和開發調試功能。
4.2 應用層通信協議設計
對于應用層通信協議設計,首先要列出系統所有的功能,并為這些功能分配ID號。表1規定了串口命令的格式。命令具體的字節數和各字段含義會隨命令不同,在命令頭之后略有差別。對于信號板與固定列的CAN通信,在CAN2.0B協議的基礎上,采用標準幀格式,在消息對象初始化時,對應信號板與固定列之間CAN通信的消息標識符、ID號和參數長度。

表1 串口命令的命令格式
根據硬件電路設計,在下層系統中使用SJA1000中斷、定時器中斷、串口UART0中斷、C8051F040內部CAN中斷這四類中斷接收數據。下面以固定列主程序流程為例,說明系統軟件編寫方法,圖4中系統初始化包括配置系統時鐘、MCU引腳、CAN消息對象、串口、SJA1000、移動列霍爾狀態、自檢標記flag觸發標記flip初始化為0,/INT0、定時器0、UART0、CAN消息中斷使能并初始化,CAN通信初始化、全局使能。其中固定列的/INT0中斷負責接收移動列發來的消息,根據消息置相應標志位,或回復移動列,對于移動列的按鍵或觸摸屏消息,固定列對移動列進行命令回復;對于紅外阻擋消息,向上位機發送阻擋報警消息,并向移動列發送鎖定消息;對于停止、鎖定、解鎖、打開、關閉、通風消息,向上位機回復消息,并置uart_flag、flag和flip等標記;對于霍爾狀態消息,則更新移動列霍爾狀態數組。UART0接收中斷負責接收按鍵板發來的按鍵或觸摸屏信息,根據不同的消息,向移動列通過SJA1000發送不同的命令。定時器中斷負責定時查看移動列霍爾狀態,判斷架體處于正在打開、已經打開、正在關閉、已經關閉、正在通風打開、還是已經通風打開狀態,根據不同狀態向移動列和PC機發送不同的消息。C8051F040內部CAN中斷負責接收信號板轉發的PC機發送的消息,并根據消息向移動列發送命令。

圖4 固定列主程序流程圖
本設計采用C8051F系列單片機和CAN總線技術構建了操作簡單、管理方便、高效實時、安全可靠的密集架智能倉儲管理系統。采用中斷模塊化的程序設計方法,使程序思路清晰,效率高。該系統有效提高了對倉儲物品的日常管理,并能根據查詢結果自動控制物品所在的密集柜的移動,開啟對應的照明、通風、人員保護系統,實現了對密集架的智能管理和控制,具有一定的理論和實際應用價值。
[1]徐友堅.基于CAN總線的體育館智能照明控制系統設計[D].大連:大連理工大學,2013.
YU Youjian.The Design of the Stadium Intelligent Lighting Control System Based on CAN Bus[D].Dalian:Dalian University of Technology,2013.
[2]Lihong Z,Lei S,Shufen H,et al.Measurement and control system of soil moisture of large greenhouse group based on double CAN bus[C]//2011 Third International Conferenceon Measuring Technology and Mechatronics Automation. IEEE,2011:518-521.
[3]沈文林.智能化檔案密集架網絡控制和檔案數據庫管理系統的研發和應用[J].數字與縮微影像,2011(1):18-21.
SHEN Wenlin.Intelligent file shelves network control and management system development and application of the database file[J].Digital and miniature images,2011(1):18-21.
[4]王愛成.基于單片機的智能型密集架控制系統的設計與實現[D].太原:太原理工大學,2011.
WANG Aicheng.Design and Implementation of Control System of Intelligent Compact Shelves Based on MCU[D]. Taiyuan:Taiyuan university of technology,2011.
[5]張芬.基于密集架的智能倉儲管理系統設計及實現[D].南京:南京理工大學,2014:7-10.
ZHANG Fen.Based on the intelligent warehouse management system design and realization of the shelves[D]. Nanjing:Nanjing university of technology,2014:7-10.
[6]裴春梅,王艷秋,楊秀清,等.基于MODBUS協議的密集架智能倉儲通信系統設計[J].物流技術,2015,34(4):127-129.
PEI Chunmei,WANG Yanqiu,YANG Xiuqing,et al.Compact shelving storage communication system based on MODBUS protocol design[J].Logistics technology,2015,34(4):127-129.
[7]Silicon Laboratories Com.C8051F Mixed Signal ISP FLASH MCU Family[M].Shanghai:Shanghai Science and Technology Press,2009:197-207.
[8]宋薇,劉曉潔,韓潤萍.基于C8051F040 CAN總線的節點通信研究[J].計算機系統應用,2009(5):190-193.
SONG Wei,LIU Xiaojie,HAN Runping.Node based on C8051F040 CAN bus communication research[J].The computer system application,2009(5):190-193.
[9]牛躍聽,周立功,方丹.CAN總線嵌入式開發:從入門到實戰[M].北京:北京航空航天大學出版社,2012:28-47.
NIU Yueting,ZHOU Ligong,FANG Dan.CAN bus embedded development:from entry to actual combat[M].Beijing:Beijing university of aeronautics and astronautics press,2012:28-47.
[10]周韌研,商斌.Visual C++串口通信開發入門與編程實踐[M].北京:電子工業出版社,2009:133-187.
ZHOU Renyan,SHANG Bin.Introduction to Visual c++ serial communication development and programming practice[M].Beijing:Electronic industry press,2009:133-187.
Compact Shelving Intelligent Storage System Based on CAN bus
JIA RuSANG Guoming
(School of Information Science and Technology,Dalian Maritime University,Dalian116026)
In this paper,a software and hardware design of a compact shelving intelligent storage system based on CAN bus is proposed,the system consists of upper PC and the lower compact shelving system.The lower system uses C8051F series MCU as the main controller,and customizing application layer communication protocol and communication command format.By installing management system software in the PC,or the lower shelves in the system by the keypad and touch screen,users can realize to store content of daily management and compact shelving of intelligent control.
compact shelving,CAN bus,C8051F,communication protocol
TH402
10.3969/j.issn.1672-9722.2017.06.046
2016年12月11日,
2017年1月23日
賈茹,女,碩士研究生,研究方向:嵌入式技術。桑國明,男,副教授,研究方向:嵌入式技術。