陳忠 湖南城市學(xué)院
隨著電子技術(shù)、計算機(jī)的不斷發(fā)展,嵌人式技術(shù)已經(jīng)逐漸滲透到各種電子產(chǎn)品。早期的嵌入式設(shè)備常作為單一的控制終端產(chǎn)品,以微控制器為核心,實(shí)現(xiàn)對外設(shè)的控制操作,大多不與外界進(jìn)行連接。微控制器的主要任務(wù)是定時地檢測外部輸入、采集外部信息,實(shí)現(xiàn)簡單的數(shù)據(jù)處理操作。但是,由于設(shè)備不能與互聯(lián)網(wǎng)或局域網(wǎng)(進(jìn)行連接,這大大限制了終端設(shè)備在工業(yè)控制、信息家電、移動設(shè)備等的實(shí)際應(yīng)用。近幾年來,隨著網(wǎng)絡(luò)技術(shù)日趨成熟和完善網(wǎng)絡(luò)技術(shù)與嵌入式統(tǒng)的結(jié)合使終端設(shè)備具有網(wǎng)絡(luò)傳輸和遠(yuǎn)程信息處理的能力這也將是嵌人式技術(shù)未來的主要發(fā)展方向。將終端設(shè)備通過網(wǎng)絡(luò)控制器接人互聯(lián)網(wǎng)中,可滿足目前控制系統(tǒng)中對終端設(shè)備的數(shù)據(jù)采集、傳輸以及決策指令發(fā)布等,實(shí)現(xiàn)網(wǎng)絡(luò)控制的要求。筆者所設(shè)計的嵌入式網(wǎng)絡(luò)控制器旨在利用目前豐富的網(wǎng)絡(luò)資源,實(shí)現(xiàn)對工業(yè)控制、智能樓宇、信息家電等設(shè)備的遠(yuǎn)程控制和信息交互。
本系統(tǒng)的硬件可分為處理模塊、網(wǎng)絡(luò)數(shù)據(jù)收發(fā)模塊、電源模塊、存儲模塊、控制模塊、指示模塊。其中處理模塊負(fù)責(zé)控制整個系統(tǒng)的工作,處理和存儲上位機(jī)程序發(fā)送過來的信息繼電器模塊顯東處理模塊執(zhí)行相應(yīng)命令后的結(jié)果;存儲模塊負(fù)責(zé)存儲上位機(jī)對處理模塊的設(shè)置;電源模塊負(fù)責(zé)整個系統(tǒng)的供電;控制模塊負(fù)責(zé)配合上位機(jī)程序?qū)φ麄€模塊進(jìn)行相應(yīng)的控制。
STM32F107 是 意 法 半 導(dǎo) 體 公 司 生 產(chǎn) 的 基 于ARMCortex-M3 內(nèi)核的STM 系列的32 位互連型微處理器。STM32F107 的時鐘頻率可達(dá)到72 MHz ,使其處理速度比同級別的基于ARM7TDMI 的產(chǎn)品快30% ,是同類型產(chǎn)品中性能最高的產(chǎn)品。處理器內(nèi)置嵌套向量中斷控制器(NVIC),并且使用尾聯(lián)技術(shù),使得背靠背中斷的響應(yīng)只要6 個時鐘周期,從而大大提高了中斷事件的處理速度。而且STM32F107 系列芯片內(nèi)部集成了一個10/100 MbitVs 以太網(wǎng)媒體控制器( MAC) ,盡管芯片內(nèi)部沒有集成PHY 功能,但該MAC 控制器既支持較早的MII接口,也支持便于簡化電路設(shè)計的RMII 接口,這樣使設(shè)計人員可以根據(jù)需要靈活選擇PHY 芯片,從而使微控制器可以實(shí)現(xiàn)不同通信要求的網(wǎng)絡(luò)功能。
本文設(shè)計的以太網(wǎng)PHY 芯片采用美國國家半導(dǎo)體公司生產(chǎn)的DP83848 芯片, DP83848 可實(shí)現(xiàn)10/100Mbits 的傳輸速度,提供了MII 和RMII 兩種接口規(guī)范連接到媒體存儲介質(zhì)層( MAC)。MII 規(guī)范為每個端口提供16 根引腳,用于數(shù)據(jù)和控制應(yīng)用(8 位數(shù)據(jù)線和8 位控制線)。RMII 規(guī)范將數(shù)據(jù)接口從4 位數(shù)據(jù)減少為2 位數(shù)據(jù),將控制減少到了3 個信號,相比MII 減少了引腳數(shù)目以及其他應(yīng)用中的信號布線。因此,在本設(shè)計中采用RMI 模式與微處理器連接。
另外,系統(tǒng)中存儲模塊采用富士通半導(dǎo)體公司生產(chǎn)的FM24C04 芯片,FM24C04 是用先進(jìn)的鐵電技術(shù)制造的4 Kbits的非易失性的存儲器。接口方式為工業(yè)標(biāo)準(zhǔn)的兩線接口與串行E'PROM 的功能操作相似,不同之處在于鐵電存儲器比EPROM寫速度快得多,無延時。系統(tǒng)用FM24C04 對STM32F107 芯片進(jìn)行IP 地址、子網(wǎng)掩碼、端口號等設(shè)置的存儲。3 系統(tǒng)軟件設(shè)計
系統(tǒng)軟件設(shè)計主要由STM32F107 微控制器軟件編程和上位機(jī)控制軟件組成。在此只介紹STM32F107微控制器軟件編程部分。
嵌人式網(wǎng)絡(luò)控制器主要實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)收發(fā)、繼電器控制,并且可通過USB 接口進(jìn)行繼電器控制和網(wǎng)絡(luò)參數(shù)的設(shè)置。軟件部分采用μC/OS II 嵌入式實(shí)時操作系統(tǒng),并移植LwIP 協(xié)議棧實(shí)現(xiàn)網(wǎng)絡(luò)通信功能。主函數(shù)進(jìn)行初始化操作后,根據(jù)系統(tǒng)設(shè)計需求建立5 個任務(wù):網(wǎng)絡(luò)數(shù)據(jù)處理任務(wù)、USB 數(shù)據(jù)處理任務(wù)、系統(tǒng)監(jiān)控任務(wù)、數(shù)據(jù)存儲任務(wù)、控制顯示任務(wù)。各任務(wù)之間通過郵箱、信號量和消息隊列進(jìn)行通信。除了主要應(yīng)用任務(wù)之外,還有3 個中斷服務(wù)子程序:①網(wǎng)絡(luò)數(shù)據(jù)接收中斷,用于把接收到網(wǎng)絡(luò)數(shù)據(jù)存人緩沖區(qū);②USB 數(shù)據(jù)接收中斷,用于把接收的USB 數(shù)據(jù)存人緩沖區(qū);③定時器中斷,用于為操作系統(tǒng)提供周期性的信號源。
本設(shè)計主控芯片STM32F107 中的MAC 控制器和外部PHY 芯片構(gòu)成了網(wǎng)絡(luò)傳輸?shù)奈锢韺雍蛿?shù)據(jù)鏈路層,系統(tǒng)要實(shí)現(xiàn)網(wǎng)絡(luò)通信需要協(xié)議棧的支持來構(gòu)成網(wǎng)絡(luò)傳輸?shù)木W(wǎng)絡(luò)層和傳輸層。本設(shè)計采用瑞士計算機(jī)學(xué)院(SICS)AdamDunkels 等人開發(fā)的TCP/IP 協(xié)議棧一-LwIP。
提出了-種基于STM32 微控制器外接網(wǎng)絡(luò)PHY 芯片的網(wǎng)絡(luò)控制系統(tǒng)的解決方案,本方案具有體積小、結(jié)構(gòu)簡單、功耗低的優(yōu)點(diǎn),軟件采用實(shí)時操作系統(tǒng)和嵌人式網(wǎng)絡(luò)協(xié)議棧的設(shè)計方案,設(shè)計靈活、可靠,可以滿足對實(shí)時控制要求比較高的應(yīng)用。該設(shè)計經(jīng)過多次實(shí)際試驗(yàn),網(wǎng)絡(luò)通信穩(wěn)定、可靠,具有廣泛的設(shè)計參考意義和實(shí)用價值。