王玉麗 王宜懷
1(蘇州工業園區職業技術學院 江蘇 蘇州 2151232(蘇州大學計算機科學與技術學院 江蘇 蘇州 215006)
基于CAN總線的智能電動密集架控制系統的研究
王玉麗1王宜懷2
1(蘇州工業園區職業技術學院 江蘇 蘇州 2151232(蘇州大學計算機科學與技術學院 江蘇 蘇州 215006)
由于智能電動密集架控制系統多采用RS485方式控制,實時性差,總線利用率低,軟件控制復雜。針對這種情況,提出基于CAN總線技術的智能電動密集架控制系統的設計。采用內嵌CAN控制器MSCAN的8位微控制器MC9S08DZ60作為主控MCU,搭配高性能CAN收發器TJA1040,組建CAN通信網絡,提供高效數據傳輸通道。融合多種傳感器件建立多重保護機制,并添加必要的失效保護,應對復雜現場環境。充分利用CAN協議降低軟件設計復雜度,并配合良好的移動調度策略,提升操作速度。實驗結果表明,該控制系統通信速率高、安全可靠,有效地打破了RS485導致的性能瓶頸,完全滿足密集架控制對通信的實時性、可靠性和互操作性的要求。
智能電動密集架 RS485 CAN
CAN是一種有效支持實時控制的串行通信網絡,區別于基于RS485構建的系統,它具有數據通信實時性強、傳輸距離遠、安全性高、開發周期短等諸多優勢。密集架是多列貨架密集組合,可根據需要通過專用導軌移動、靠攏或分開的裝置[1-3]。智能電動密集架系統,是現代化倉儲的重要標志,因其空間利用率高,配置靈活,而被廣泛應用于圖書、檔案等管理系統中。目前市面上大部分密集架控制系統均采用RS485方式控制,其實時性差、總線利用率低、軟件控制復雜等缺點,已經限制了系統性能的提升。針對這個問題,本文闡述了一種基于CAN總線實現的密集架控制系統方案,該方案選取Freescale 的8位微處理器MC9S08DZ60作為主控芯片。該系統能夠簡化各個控制單元間的連線、提高通信速率、提升安全保障[4]。本文闡述的設計方法與控制策略也可為同類的其他應用開發提供參考。
智能電動密集架系統主要包括基于單片機或PLC的電氣控制系統、機械系統和用戶終端管理軟件。用戶終端管理軟件負責管理數據資料以及顯示各種庫房環境數據。電氣控制系統負責控制密集架的架體移動。系統的核心是用戶通過PC機管理軟件或密集架上的觸摸屏查詢出要取/放的資料所在的位置,系統自動打開特定的密集架通道,并點亮相應位置的指示燈,供用戶取/放資料,操作完畢,密集架架體自動歸位,指示燈熄滅。
密集架一般按組劃分,一個密集架系統包含多個組。一組密集架,包含1個主控列和N個移動列。主控列負責控制和協調組中各列的運動以及環境監測等,位置固定不動,也稱為固定列。移動列負責本列的電氣控制,允許左右移動、強制鎖定、手動控制等。圖1所示為一個初始狀態為全關,共6列,主控列在右側的一組密集架,每組密集架底部都裝有一組導軌,用于移動。圖1中主控列在最右側,一般主控列編號為1,最靠近主控列的那一列編號為2,其余類推。主控列的位置也可能在最左側或者正中央。

圖1 一組密集架示意圖
基于CAN總線的密集架控制系統結構,如圖2所示。

圖2 密集架控制系統結構圖
系統控制采用主從模式控制,主控列控制器作為主控CAN節點,移動策略部署在該節點上,負責調度移動列,同時負責信息的中轉處理,把終端用戶的指令轉發到CAN通信子網中。移動列控制器,作為CAN子節點,負責接收并執行主控CAN節點發送的命令,并反饋結果到主控CAN節點。系統中需要處理的信息概括為以下幾種:
(1) 按鍵事件:操作人員主動按下移動列的左/右鍵,請求移動,此時移動列向主控列發送請求移動命令。主控列接收移動請求幀,判斷是否可以移動,如果不能移動,語音播報;如果能移動,廣播發送移動命令,同時主控列控制器通過RS232向上位機發送移動信息。移動列接收移動命令,根據傳感器信息和相鄰列的信息進行移動。操作人員主動按下移動列的強制鎖定鍵,強制系統硬件鎖定,忽略任何移動指令。
(2) 運動控制:主控列要求移動列移動/停止移動/解鎖等。
(3) 查詢事件:主控列查詢某個移動列的狀態。
(4) 顯示信息:主控列向移動列發送顯示信息。
(5) 定位燈控制:主控列向移動列發送定位燈亮暗信息。
觀察并對比兩組的急救時間與疼痛緩解時間、護理滿意度。為患者發放滿意度調查表,指導患者如實填寫,滿分100分,分為非常滿意(85~100分)、滿意(70~84分)與不滿意(<70分)。護理滿意度=非常滿意度+滿意度的[2] 。
(6) 移動列參數配置:靠近主控列和遠離主控列對應的正轉還是反轉,人體感應時長等參數。
(7) 緊急事件:例如某列檢測到有物品墜落,發送廣播幀。
(8) 到位事件:移動列發送的到位信息。
本系統在設計過程中,為了保障人員和資料安全,引入了多種傳感器協同工作提供多重保護機制,主要包括:末列密集架上裝有末列到位傳感器用于移動過程中檢測是否移動到最末端;任意兩列之間都裝有列間到位傳感器,監測兩列之間是否移動到位;每列上都裝有防墜落傳感器,監測物品是否墜落,如果有物品墜落要強制硬件鎖定,密集架不能移動;每列上都裝有強制鎖定按鍵,人員進入時可按下強制鎖定按鍵,強制硬件鎖定,忽略任何移動指令;兩列之間裝有紅外對射防夾傳感器,人員操作時,進行系統鎖定,提供雙重保護;主控列上裝有RFID讀寫器,操作人員刷卡認證之后,可以通過主控列上的觸摸屏完成取放操作,為系統提供”脫機”控制功能,避免因意外的網絡故障而無法獲取資料。
Freescale公司的MC9S08DZ60內部集成了支持CAN2.0A/B協議的MSCAN模塊。MSCAN模塊包含3個使用本地優先級的發送寄存器5個FIFO的接收寄存器,并提供了64 位的掩碼寄存器用于標志符的識別,可靈活組合為2個32 位/4個16位/8個8 位的寄存器,且支持11 位標識符標準幀和29位標識符擴展幀,總線消息尋址十分靈活[5]。同時DZ60提供了2個SCI、SPI、IIC、TPM、A/D、BDG等諸多功能模塊,資源豐富,應用廣泛,因此本系統選用該芯片作為主控MCU,進行硬件設計。系統的主控列與移動列控制器采用近似的硬件設計,部署不同的軟件。
MSCAN模塊需要配合CAN收發器使用,本文選用高速CAN收發器TJA1040[5],它適用于較高通信速率和干擾環境下的CAN總線通信,為良好的收發奠定基礎。CAN總線收發器的電路連接如圖3所示。為實現CAN總線各節點真正的電氣隔離,CAN模塊的RXD/TXD經由高速光耦6N137之后再與TJA1040的RXD/TXD相連,且光耦部分的VCCA/VCCB通過帶隔離輸出的開關電源模塊進行隔離,為加強保護系統中還添加了靜電保護裝置PESD1CAN。

圖3 CAN總線收發器電路連接
系統運用多種傳感器進行狀態檢測,選用了單總線芯片DS18B20用于溫度采集,電壓式濕度傳感器HIH-5030用于濕度采集,Kingsensor紅外光幕用于人員檢測和物品墜落檢測,限位開關和超聲波傳感器用于輔助電機控制。
CAN協議規定標準的數據幀有11 位標識符,擴展幀有29位標識符[6],但在實際的軟件開發過程,開發人員需要針對特定的應用環境對標識符進行協議編制,以提升軟件開發效率。
本系統中由于每組密集架不超過31列,因此地址碼使用5位二進制進行編碼,每個列分配一個唯一的地址碼,在系統初始化時通過讀取一組撥碼開關的狀態而設定[7]。為提高通信效率,本系統只使用標準數據幀進行數據傳輸,并將標準幀11位標識符中的ID10作為主從模式設置位。0代表主控列發送數據到移動列,1代表移動列發送數據到主控列。將標識符ID4-ID0用作目的地址,ID9-ID5用作源地址,子節點的目的地址設為0,表示廣播幀[7]。由于CAN協議中規定標識符高7位不能全為隱性位,源地址排除31,而0保留,主控列負責調度優先級較高,地址設置為1,因此實際可用的移動列地址為2~30。
CAN數據幀的發送需要將數據寫入MSCAN數據緩沖區,MSCAN緩沖區結構與應用協議結構如表1所示。

表1 MSCAN緩沖區結構與應用協議結構
4.2 軟件流程
鑒于CAN總線的數據傳播方式為廣播,因此總線上的每個節點都需要過濾無關數據,以提高數據處理效率。MSCAN模塊提供了靈活的數據幀過濾功能,通過聯合設置標識符驗證模式寄存器、標識符寄存器和標識符掩碼寄存器可以滿足各種應用需求[8-9]。通過標識符掩碼寄存器指定哪些位參與匹配檢查,哪些位忽略不計,把接收到的數據幀標識符和標識符寄存器中的標識符進行匹配,如果匹配通過,則把該數據幀存入接收緩沖區中,否則拋棄該幀[10]。本系統中所有CAN模塊均設置為只接受廣播幀和發送給自己的幀,根據協議規定,MSCAN模塊可接受的數據幀配置如表2所示。

表2 MSCAN模塊可接受的數據幀配置

續表2
MSCAN的幀過濾機制,不但簡化了軟件處理的復雜度,而且為系統擴展提供了有利條件。本控制系統軟件分為移動列控制部分和主控列控制部分,移動列核心為各種CAN命令幀的解析以及運動控制。主控列軟件的處理流程與移動列類似,在此基礎上添加移動控制策略和信息轉發策略即可,這樣可以有效提高軟件開發與調試的效率。
5.1 運動控制
(1) 原則上移動列在移動狀態下,遵循邊移動邊檢測的原則,一旦到位傳感器檢測到移動到位,則立即停止電機,并向主控列發送本列到位信息,但僅如此不足以應對復雜的實際應用場景中。出于安全考慮,系統中還添加了到位傳感器失效保護功能,當傳感器失效時,能在超過預設距離時自動停止并自動鎖定架體,防止架體沖出軌道、發生碰撞或側翻。失效保護通過使用可編程定時器模塊TPM作為定時時鐘源,啟動定時,邊移動邊計時,精確控制時長,超時停止。此外移動裝置上還裝有阻力檢測傳感器,通過電流變化反映是否因意外障礙物而受阻。其他類型傳感器也悉數添加冗余設計,防止部分傳感器失效造成架體運行碰撞、側翻。
(2) 當密集架通道打開時,多列電機會同時運動,即使是同一型號同一批次的電機,也存在自身速度差異,會造成列間距不均等的情況,而引發碰撞;而各個密集架體負載的資料數量不等,架體的重量也不均等,同樣會導致速度差異。針對這個問題,硬件上為每列添加超聲波傳感器檢測,軟件上通過讀取超聲波的反饋,自動微調各個電機的速度,以屏蔽速度差異,維持等距。
(3) 由于密集架體較重,所以電機控制應遵循“高速啟動,勻速前進,低速無碰撞著落”原則進行,速度參數的調整需要結合架體承重、運動距離等進行測算。
5.2 CAN控制
(1) 組建CAN通信網絡時,CAN節點地址在系統初始化時通過讀入一組外部撥碼開關的狀態來設置,設置簡單靈活,方便系統擴展。
(2) CAN通信網絡中所有的節點都必須使用統一的位速率。位速率大小主要取決于應用環境所需要的通信距離。本系統通信距離限定為兩百米左右,位速率設定為250 kbit/s。該速率通信高效可靠,可及時發現系統隱患,方便故障定位和排查。故障監控可充分利用MSCAN模塊的錯誤中斷,通過跟蹤錯誤計數,以決定是否需要進一步診斷,通過讀取CRFLG寄存器標志位,可以判斷錯誤/警告的類型[11]。
(3) 為降低系統功耗,當系統狀態機為Idle時,啟用MSCAN休眠模式,并在總線上有數據時通過中斷喚醒。
(4) 用戶終端管理軟件部署調度策略,以應對多個資料統一取/放問題。當開架請求涉及多組密集架時,需要首先根據組信息,按照距離入口由近及遠的順序加入命令處理隊列。主控列也部署有移動策略,收到一組多列存取指令時,根據涉及到的列數、列序號以及固定列的位置,采用類似電梯調度的移動策略,盡量避免路徑重復,有效提高效率。
針對密集架控制系統,傳統的RS485總線實現與本系統實現方式,各方面性能對比如下:
(1) 實時性:RS485是單主從結構,通信只能由主機發起,多從機通信必須經主機中轉,而CAN是多主從結構,任意節點均可發送數據,互相通信,這在移動列運動時檢測鄰居列是否運動到位時,尤其重要。且由于系統中使用多種多路傳感器,而傳感器事件屬于隨機突發事件,隨時可能上報數據。針對隨機突發事件,RS485只能通過輪詢來解決,而CAN的多主機制可直接實現,效率優劣顯而易見。
(2) 總線利用率:當同時有多個節點同時需要上報數據時,RS485只能在輪詢發現后,逐一進行通信。而CAN通過它獨特的逐位仲裁以及重發機制,可以自動解決問題,總線利用率明顯提升。
(3) 錯誤檢測:RS485無法識別非物理錯誤,容易造成總線癱瘓,而CAN控制器擁有完善的錯誤檢測機制,且如果節點發生嚴重錯誤則自動閉鎖,脫離總線。
(4) 軟件開發復雜度:CAN的廣播與應答機制可以減少交互次數從而降低軟件開發復雜度,系統中需要處理的交互歸納如表3,其中通信方向0為主控列發送數據到移動列,1反方向傳輸,N為移動列數量。

表3 軟件開發交互次數對比
從表3可以看出,RS485需要接近N倍于CAN的交互次數,加上需要自定義確認重發機制,軟件控制比較復雜。
(5) 通信速率與穩定性:主控CAN節點通過串口連接上位機,每隔50ms查詢各移動列的狀態數據,并記錄各移動列的應答編號、應答數據與時間,截取不間斷1小時測試數據,如表4所示,其中t為時間,v為速率,r為正確幀數,w為錯誤幀數。

表4 測試數據
通過表4可以看出,數據幀數量隨時間線性增加,沒有出現錯誤幀。通過檢查應答編號也沒有發現丟幀,說明在兩百米范圍內可以實現接近250kbit/s的穩定傳輸。在同等環境下,RS485通信在30分鐘之內就出現了錯誤幀。
通過以上對比,不難發現,CAN相較于RS485在多個方面都更勝一籌。
CAN總線是目前唯一具有國際標準的現場總線,其高可靠性、低功耗、結構簡單等特點,使其具有廣泛的應用前景。本文工作受到國家自然科學基金項目(項目編號61202028)的部分資助,屬于該項目中通信方式應用研究及現場總線的無線接入研究的一部分,也是該項目的橫向延伸應用案例之一,對基于CAN總線的智能型密集架控制系統的設計與實現進行了研究,闡述了控制系統的軟硬件設計方案,并對系統實現的核心技術要點進行了詳細闡釋。最后通過與RS485實現方式的全面比對,詮釋了本系統在實時性、總線利用率、錯誤檢測、軟件復雜度等方面的絕對優勢。經實踐測試,該控制系統實時性強、可靠性高,打破了常規智能電動密集架控制系統帶來的性能瓶頸,作為RS485總線應用的一種優化替代方案,本系統也可為同類的其他應用提供借鑒。
[1] 裴春梅,王艷秋,楊秀清,等.基于MODBUS協議的密集架智能倉儲通信系統設計[J].物流技術,2015,34(2):127-129,166.
[2] 張國宇,鄒衛軍.基于μC/OS-II和ModbusRTU協議的密集架控制軟件設計[J].無線互聯科技,2014(2):52-54.
[3] 張芬.基于密集架的智能倉儲管理系統設計及實現[D].南京:南京理工大學,2014.
[4] 張曉焱,吳士力.基于MC9S08DZ60處理器CAN總線型車身控制系統的設計[J].煤炭技術,2010,29(11):162-163.
[5] 袁洪芳,金鑫.基于MC9S08DZ60的CAN總線振動傳感器設計[J].電子設計工程,2009,17(7):23-25.
[6] 饒運濤,鄒繼軍,王進宏,等.現場總線CAN原理與應用技術[M].2版.北京:北京航空航天大學出版社,2007.
[7] 黃敏雄.車載網絡技術的應用與開發研究[D].成都:電子科技大學,2011.
[8] 王宜懷,劉曉升.嵌入式技術基礎與實踐[M].北京:清華大學出版社,2007.
[9]FreescaleSemiconductorInc.MC9S08DZ60DataSheet[M].2006.
[10]FreescaleSemiconductorInc.MSCANBlockGuideV02.15[M].2004.
[11]FreescaleSemiconductorInc.Ascalablecontrollerareanetwork(MSCAN)interruptsapplicationnote[M].2002.
RESEARCH ON INTELLIGENT ELECTRICAL SERRIED SHELF CONTROL SYSTEM BASED ON CAN BUS
Wang Yuli1Wang Yihuai2
1(SuzhouIndustrialParkInstituteofVocationalTechnology,Suzhou215123,Jiangsu,China)2(SchoolofComputerScienceandTechnology,SoochowUniversity,Suzhou215006,Jiangsu,China)
Most of the intelligent electric serried shelf control system using RS485 mode control, so it is poor real-time, bus utilization is low, the software control is complex. Aiming at this situation, the design of the intelligent electric serried shelf control system based on CAN bus is proposed. 8-bit microcontroller MC9S08DZ60 with embedded CAN controller MSCAN is used as the master MCU, and the high-performance CAN transceiver TJA1040 is adopted to set up the CAN communication network to provide efficient data transmission channel. It integrates multiple sensor devices to establish multiple protection mechanisms, and add the necessary failure protection to deal with complex on-site environment. It makes full use of CAN protocol to reduce the software design complexity, and with a good mobile scheduling strategy to enhance the operation speed. The experimental results show that the control system has high communication speed, is safe and reliable, and effectively breaks the performance bottleneck caused by RS485, and fully satisfies the real-time, reliability and interoperability requirements of the serried shelf control.
Intelligent electrical serried shelf RS485 CAN
2016-04-04。國家自然科學基金項目(61202028)。王玉麗,講師,主研領域:嵌入式系統應用。王宜懷,教授。
TP3
A
10.3969/j.issn.1000-386x.2017.04.044