邢佩毅 鄒衛(wèi)軍
摘 要:本文提出了一種基于Cortex-M3核心的密集架嵌入式控制系統(tǒng)設計,重點介紹各個模塊的實現(xiàn)和整體構架的設計。
關鍵詞:STM32;上位機;直流電機
密集架是一種由一列固定列和多列移動列組成的,正廣泛應用于自動化倉儲物流的存儲系統(tǒng)。密集架系統(tǒng)不使用時,各列架體相鄰;工作時,系統(tǒng)接收控制命令來打開制定通道。密集架系統(tǒng)有效利用了存儲空間,具有較高安全性,大大提高了倉儲物流管理的效率。
密集架系統(tǒng)的核心,是固定列和移動列采用的嵌入式控制器。嵌入式控制器完成系統(tǒng)間控制信息和狀態(tài)信息的數(shù)據(jù)通信,同時根據(jù)系統(tǒng)運行邏輯,驅動電機工作,實現(xiàn)對密集架的控制。
本文深入分析密集架系統(tǒng)對固定列和移動列嵌入式控制器的功能需求,設計了一款基于Cortex-M3為核心的STM32F103控制器。設計采用控制板+電機驅動板的分立架構,并在控制板上實現(xiàn)固定列和移動列的基本功能。系統(tǒng)軟件驅動采用STM32的庫函數(shù)開發(fā),本設計已應用于產(chǎn)品項目實施,實際應用表明,系統(tǒng)硬件設計合理,運行穩(wěn)定可靠。
1 控制器總體設計
密集架系統(tǒng)對嵌入式控制器的主要設計要求有:
⑴具有以太網(wǎng)、RS232和RS485通信功能;
⑵具有PWM輸出的低壓直流電機驅動功能和過流過壓檢測功能;
⑶具有數(shù)據(jù)信息掉電保護存儲功能;
⑷提供數(shù)字量和模擬量形式的傳感器輸入接口;
⑸具有調(diào)速控制電機的功能。
根據(jù)以上設計要求,考慮到密集架系統(tǒng)的電機驅動工作時,其產(chǎn)生的大電流信號可能會對系統(tǒng)通信造成干擾;同時系統(tǒng)運行時的一些潛在機械問題可能會造成電機堵轉等故障,損壞電機驅動電路。故為了提高系統(tǒng)穩(wěn)定性,本文采用控制板和電機驅動板分離設計的構架,其架構圖如圖1.1所示:
2 控制器功能模塊設計
2.1 主控芯片
2.2 通信模塊
通信是整個系統(tǒng)正常工作的核心,通信分串口通信和以太網(wǎng)通信。
2.2.1 串口通信
固定列和移動列通信采用RS485通信,通信協(xié)議為MODBUS協(xié)議。一個系統(tǒng)中,固定列為一列,移動列數(shù)量不定,因此,RS485通信距離可能會很長,在設計時要注意,收器端要有上拉電阻,下拉電阻,通信線上要添加匹配電阻。另外,RS485通信工作方式為差分電平的工作模式,在實際工作中,要在收發(fā)端加雙向保護對管,目的是保護收發(fā)兩端間電壓差不至于過大,燒壞RS485電平轉換芯片,串口通信模塊如下圖2.2所示:
2.2.2 以太網(wǎng)通信
固定列和上位機通信采用以太網(wǎng)通信,通信接口是SPI接口,用的通信芯片是常用的網(wǎng)絡芯片(W5100),此芯片操作簡單,用固定的IP地址通信,初始化W5100后,用中斷方式通知控制器(STM32F103R8T6)控制數(shù)據(jù)是否寫入W5100,如果響應中斷,控制器從網(wǎng)絡芯片中讀取有關數(shù)據(jù)。
2.3 電機驅動模塊
電機采用直流電機,控制采用脈寬調(diào)制的方法,可以實現(xiàn)自動調(diào)速功能,同時還有過流保護,避免電流過大燒毀電機,把損失降為最低,STM32輸出的信號為脈寬調(diào)制信號,正轉和反轉信號,相應的電機驅動采用H橋電路驅動。
工作原理:通過晶體管的開與關的時間,來改變加在電機上平均電壓的大小,用此方法來調(diào)節(jié)電動機的運轉速度。H橋電路如圖2.3所示:
H橋式電路由四個MOS管組成。當導通對角線上的一對MOS管時,電機才能正常動轉,當Q4和Q5導通時,電機正向旋轉,當Q3和Q6導通時,電機反向旋轉。因此,通過MOS管導通與斷開控制電機的轉向,通過脈寬的大小調(diào)節(jié)電機的旋轉速度,達到對電機的合理控制。
2.4 信息掉電保存設計
系統(tǒng)在運行過程中可能會遇到突然斷電的情況,因此設計了掉電保護功能,采用AT24C02擴展了2K的存儲空間。控制器內(nèi)部集成了IIC模塊,采用IIC與AT24C02通信,相應電路如圖2.4所示:
3 系統(tǒng)的調(diào)試和結果
系統(tǒng)的調(diào)試過程分模塊調(diào)試,整個系統(tǒng)分為以下幾個模塊,控制器與觸摸屏通信的串口模塊,固定列和移動列之間通信的串口模塊,固定列與上位機通信的網(wǎng)絡模塊,固定列讀取傳感器信息模塊,移動列驅動電機的驅動模塊,移動列驅動照明燈模塊等。
上位機和固定列控制采用以太網(wǎng)控制,采用SPI接口來實現(xiàn)網(wǎng)絡通信,固定列負責把上位機發(fā)出的命令解析為相應控制移動列的命令,并下發(fā)解析后的命令來實現(xiàn)。
固定列控制部分,系統(tǒng)運行開始調(diào)試LED燈亮,讀取回移動列信息,如果有動作執(zhí)行;讀取觸摸屏信息,如果有動作下發(fā)控制命令給移動列;中斷方式監(jiān)控上位機命令,如果有控制命令,固定列解析命令后下發(fā)給移動列;各個進程得理結束后,調(diào)試LED燈滅。
移動列控制部分,初始化后,調(diào)試LED燈亮,采集本列的狀態(tài)信息,等待固定列的查詢狀態(tài)命令,并返回本列信息給固定列;等待固定列下發(fā)的控制命令,接收到命令動作,驅動電機運動;調(diào)試LED燈滅。本系統(tǒng)投入到實際的運用中,達到了預期的效果。
4 結束語
本系統(tǒng)設計的控制板可靠性高,還擴展出了CAN模塊,提高了串口通信穩(wěn)定性,此控制板擴展出了STM32的各個模塊,不僅僅局限于智能移動貨架,還可以應用到其它控制領域,有工業(yè)控制中常用的隔離模塊,以太網(wǎng)控制模塊,串口通信模塊等,使用者也可以根據(jù)自己的需要去配制,也可以移植UCOSII系統(tǒng)來控制各個模塊的進程,作為更深層次的開發(fā)和運用,可以使本系統(tǒng)更廣的應用。
[參考文獻]
[1]Joseph Yiu.ARM Cortex-M3權威指南[M].宋巖,譯.北京航空航天大學出版社,2009.
[2]廖義奎.Cortex-M3之STM32嵌入式系統(tǒng)設計[M].中國電力出版社,2012.
[3]黃智偉,王兵,朱衛(wèi)華.STM32F 32位ARM微控制器應用設計與實踐[M]. 北京航空航天大學出版社,2012.
[4]何賓.Cortex-M3可編程片上系統(tǒng)原理與應用[M].北京工業(yè)出版社,2012.
[5]李寧.基于MDK的STM32處理器開發(fā)應用[M].北京航空航天大學出版社,2008.
[6]李寧.ARM開發(fā)工具RealViewMDK使用入門[M].北京航空航天大學出版社,2008.