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