基于ARM和uC/OS的嵌入式SMI網(wǎng)絡(luò)轉(zhuǎn)換器設(shè)計(jì)與應(yīng)用
引言
目前,隨著互聯(lián)網(wǎng)和嵌入式系統(tǒng)的高度發(fā)展,越來(lái)越多的工業(yè)測(cè)控設(shè)備已經(jīng)將網(wǎng)絡(luò)接入功能作為其默認(rèn)配置,以實(shí)現(xiàn)設(shè)備的遠(yuǎn)程監(jiān)控和信息分布式處理。然而,大量工業(yè)現(xiàn)場(chǎng)設(shè)備尚不具備網(wǎng)絡(luò)接口。在IP113F光纖收發(fā)器監(jiān)控系統(tǒng)的開發(fā)中,下位機(jī)通過單片機(jī)與光纖收發(fā)器的SMI進(jìn)行通信以實(shí)現(xiàn)監(jiān)控,上下位機(jī)通過RS-232接口傳輸數(shù)據(jù)。南于串口傳輸距離短,工作人員每天都要到現(xiàn)場(chǎng)對(duì)數(shù)據(jù)進(jìn)行檢查和診斷,不勝其煩。針對(duì)這種情況,有必要設(shè)計(jì)一個(gè)SMI到Internet的數(shù)據(jù)傳輸模塊,以便對(duì)光纖收發(fā)器的運(yùn)行狀況作遠(yuǎn)程監(jiān)測(cè)。
IP113F芯片簡(jiǎn)介
IP113F芯片是一款具有網(wǎng)管功能、超低功耗的光纖收發(fā)器,支持3.3V I/O,主要通過SMI(MDC,MDIO)對(duì)兩組獨(dú)立寄存器進(jìn)行操作,以實(shí)現(xiàn)監(jiān)控或重新設(shè)置本地或遠(yuǎn)端光纖收發(fā)器的工作狀態(tài)。用戶可以通過串行管理接口來(lái)訪問寄存器,如圖1所示。由于IP113F的地址是5位二進(jìn)制碼,所以一個(gè)管理單元最多可同時(shí)外掛32(25)個(gè)IP113F.數(shù)據(jù)在MDIO上是一位位傳輸?shù)模前l(fā)生在MDC的上升沿跳變,MDIO上的數(shù)據(jù)通信協(xié)議如表1所示。當(dāng)SMI處于空閑狀態(tài)時(shí),MDIO則處于高阻態(tài),管理單元在MDIO上發(fā)送32位連續(xù)的"1"和"01"信號(hào)來(lái)初始化MDIO接口。
整體功能設(shè)計(jì)
系統(tǒng)的基本功能是32臺(tái)光纖收發(fā)器同時(shí)通過同一個(gè)SMI網(wǎng)絡(luò)轉(zhuǎn)換器與遠(yuǎn)程的上位機(jī)進(jìn)行通信,如圖2所示。轉(zhuǎn)換器完成的具休工作是接收本地或遠(yuǎn)端光纖收發(fā)器發(fā)送過來(lái)的測(cè)試數(shù)據(jù),自動(dòng)識(shí)別其長(zhǎng)度和來(lái)源,將其轉(zhuǎn)化為網(wǎng)絡(luò)數(shù)據(jù)格式,通過以太網(wǎng)發(fā)送到上位機(jī),同時(shí)接收上位機(jī)通過以太網(wǎng)發(fā)送過來(lái)的控制信息,并自動(dòng)識(shí)別其發(fā)送的目標(biāo),再通過SMI口發(fā)送給相應(yīng)的光纖收發(fā)器。根據(jù)實(shí)際需要,可以在上位機(jī)中通過以太網(wǎng)配置SMI網(wǎng)絡(luò)轉(zhuǎn)換器的IP地址。
硬件結(jié)構(gòu)設(shè)計(jì)
轉(zhuǎn)換器的硬件電路中選用基于arm7內(nèi)核的嵌入式處理器LPC2214芯片,用于進(jìn)行整體控制。LPC2214芯片帶有256KB的高速FLASH,并帶有16K片內(nèi)SRAM.為了滿足通信過程中的數(shù)據(jù)緩存和具備一定系統(tǒng)運(yùn)行空間的要求,片外利用IS61LV25616AL擴(kuò)展了512KB的SRAM.另外,通過IIC總線,片外擴(kuò)展了256字節(jié)的EEPROM,用于保存已設(shè)置的IP地址。選用10M全雙工以太網(wǎng)控制器RTL8019AS芯片完成網(wǎng)絡(luò)通信功能,HR61101芯片充當(dāng)網(wǎng)卡變壓器。采用通用I/O口,P0.5和P0.6模擬SIM的通信時(shí)序,對(duì)IP113F進(jìn)行數(shù)據(jù)采集。電路整體硬件電路如圖3所示。
LPC2214具有外部存儲(chǔ)器接口,可以擴(kuò)展4個(gè)Bank的存儲(chǔ)器組(Bank0~Bank3),且Bank0~Bank3的片選信號(hào)分別為CS0-CS3,本設(shè)計(jì)中,用Bank0擴(kuò)展SRAM,Bank3擴(kuò)展RTL8019AS模塊。由于LPC2210芯片是一個(gè)8/16/32位的微處理器,可以接受16位數(shù)據(jù)位寬的讀寫。設(shè)計(jì)中將RTL8019AS芯片的16位I/O腳IOCS16B連到高電平,實(shí)現(xiàn)以16位操作模式讀寫控制寄存器的內(nèi)容,與用單片機(jī)作為處理器的設(shè)計(jì)相比,系統(tǒng)運(yùn)行效率提高。通過將RTL8019AS的65腳JP接高電平以選擇跳線工作方式,即RTL8019AS的I/O和中斷由跳線決定,不需外擴(kuò)EEPROM 93C46芯片存儲(chǔ)信息來(lái)控制RTL8019AS的I/O和中斷,減少了連線,提高了高頻電路的穩(wěn)定性。RTL8019AS工作在跳線模式時(shí),其基地址為0X300.由于RTL8019AS工作電源是5V,而LPC2210的I/O電壓是3.3V,因此在總線連接上串接470Ω的保護(hù)電阻。
系統(tǒng)軟件設(shè)計(jì)與實(shí)現(xiàn)
引入RTOS
光纖收發(fā)器數(shù)據(jù)采集要求實(shí)時(shí)性比較高,若采用傳統(tǒng)的前后臺(tái)設(shè)計(jì)方法,會(huì)過于復(fù)雜,且實(shí)時(shí)性不能保證。采用實(shí)時(shí)操作系統(tǒng)RTOS可以解決這個(gè)問題。μC/OS-II操作系統(tǒng)是一種源代碼公升的RTOS,具有代碼短小精悍、簡(jiǎn)單易學(xué)的特點(diǎn),對(duì)本設(shè)計(jì)來(lái)說是一個(gè)理想的選擇。
評(píng)論