??? 摘??要: 提出了一種基于硬件協(xié)議棧芯片W5100的遠(yuǎn)程圖像采集傳輸系統(tǒng)。該系統(tǒng)使用STM32微控制器實(shí)現(xiàn)圖像數(shù)據(jù)的采集與圖像預(yù)處理,再利用W5100完備的以太網(wǎng)協(xié)議與靈活高速的傳輸能力,完成向遠(yuǎn)程終端的圖像數(shù)據(jù)傳輸。?
??? 關(guān)鍵詞: W5100; TCP/IP; STM32
?
??? 近年來,在圖像采集傳輸系統(tǒng)中實(shí)現(xiàn)以太網(wǎng)互聯(lián)正在成為研究和應(yīng)用的熱點(diǎn)。在這種潮流的推動(dòng)下,研究人員提出了許多解決方案:一種方案是在系統(tǒng)中植入具有TCP/IP協(xié)議棧的嵌入式操作系統(tǒng),其缺點(diǎn)是開發(fā)周期長(zhǎng)、難度大;另一種方案是采用第三方的以太網(wǎng)協(xié)議轉(zhuǎn)換設(shè)備,通過轉(zhuǎn)換設(shè)備通信,由轉(zhuǎn)換器完成數(shù)據(jù)封裝和協(xié)議轉(zhuǎn)換,其缺點(diǎn)是通信速率受限,系統(tǒng)無法對(duì)以太網(wǎng)進(jìn)行控制。雖然上述做法在很多應(yīng)用中取得了不錯(cuò)的效果,但都是以犧牲大量資源為代價(jià)的。而本文介紹的W5100硬件協(xié)議棧芯片則可以在占用極低系統(tǒng)資源的條件下快速完成網(wǎng)絡(luò)圖像傳輸與通信。?
1 芯片介紹?
??? 目前很多嵌入式網(wǎng)絡(luò)芯片是直接通過軟件實(shí)現(xiàn)的,但是由于網(wǎng)絡(luò)協(xié)議都比較大,寫入軟件后穩(wěn)定性欠佳,而且客戶時(shí)常會(huì)有新的需求,這種用軟件實(shí)現(xiàn)的方式很難滿足頻繁更新升級(jí)的要求。針對(duì)這種現(xiàn)狀,WIZnet公司的硬件協(xié)議棧芯片將網(wǎng)絡(luò)協(xié)議的處理獨(dú)立于系統(tǒng)處理器之外,以大規(guī)模集成電路方式硬件化通信協(xié)議棧,提供一種簡(jiǎn)單、經(jīng)濟(jì)的高速連接互聯(lián)網(wǎng)上各種數(shù)字設(shè)備的解決方案[1]。?
??? 如圖1所示,W5100將網(wǎng)絡(luò)協(xié)議的處理分成一個(gè)由特定處理器執(zhí)行的控制部分和一個(gè)硬件線路部分,實(shí)現(xiàn)硬件化TCP/IP棧中的TCP、UDP、ICMP、IPv4、ARP、IGMP以及PPPoE協(xié)議,另加連接以太網(wǎng)協(xié)議中的數(shù)據(jù)控制及MAC協(xié)議。芯片內(nèi)含16 KB收/發(fā)緩沖存儲(chǔ)器,并且將10 M/100 Mb/s以太網(wǎng)MAC和PHY集成到自動(dòng)MDIX。利用邏輯硬件實(shí)現(xiàn),使系統(tǒng)設(shè)計(jì)更加簡(jiǎn)單、緊湊。W5100的性能和結(jié)構(gòu)特點(diǎn)如下:?
?

?
??? (1) 內(nèi)嵌10BaseT/100BaseT以太網(wǎng)物理層,理論線路傳輸率可達(dá)25 Mb/s;?
??? (2) 支持自動(dòng)通信握手(全雙工和半雙工);?
??? (3) 支持自動(dòng)MDI/MDIX,自動(dòng)校正信號(hào)極性;?
??? (4) 支持ADSL連接(支持PPPoE協(xié)議中的PAD/CHAP認(rèn)證模式);?
??? (5) 支持4個(gè)獨(dú)立端口同時(shí)運(yùn)行;?
??? (6) 支持16 KB存儲(chǔ)器用于數(shù)據(jù)發(fā)送/接收緩存。?
??? W5100提供3種接口:直接并行總線、間接并行總線和SPI總線。使用W5100不需要考慮以太網(wǎng)的控制,只需要簡(jiǎn)單的端口Socket編程,大大簡(jiǎn)化了硬件電路設(shè)計(jì),使控制器在沒有操作系統(tǒng)的支持下,真正實(shí)現(xiàn)了單芯片接入 以太網(wǎng)。應(yīng)用W5100于系統(tǒng)中可完全卸載網(wǎng)絡(luò)協(xié)議所需的負(fù)荷,減少軟件開發(fā)的開支,具有較短的開發(fā)周期與較強(qiáng)的工程彈性。?
2? 系統(tǒng)設(shè)計(jì)?
2.1 系統(tǒng)硬件設(shè)計(jì)?
??? 基于W5100的遠(yuǎn)程圖像采集傳輸系統(tǒng)的硬件框架圖如圖2所示,本系統(tǒng)采用意法半導(dǎo)體公司的STM32F101R6作為MCU。STM32系列32位ARM微控制器的Cortex-M3內(nèi)核[2],是ARM公司為要求高性能(1.25 Dhrystone MIPS/MHz)、低成本、低功耗的嵌入式應(yīng)用而專門設(shè)計(jì)的內(nèi)核,提高了代碼密度的Thumb-2指令集,大幅度增強(qiáng)中斷響應(yīng),具有業(yè)界較優(yōu)的功耗水平。STM32在結(jié)合了高性能、低功耗和低電壓特性的同時(shí),保持了高度的集成性能和簡(jiǎn)易的開發(fā)特性。圖2中25 MHz晶振提供W5100的工作時(shí)鐘;EEPROM用于保存系統(tǒng)的網(wǎng)絡(luò)配置;RJ45接普通雙絞線,連接上位機(jī)。?
?

?
??? STM32與W5100之間采用W5100的Direct Bus I/F的工作方式,對(duì)物理層銜接則應(yīng)用標(biāo)準(zhǔn)MII接口,即采用15位的地址線和8位數(shù)據(jù)線, 以及/CS、/RD、/WR、/INT控制線。在硬件初始化時(shí),W5100的各寄存器和接收/發(fā)送Buffer作為STM32的I/O空間與外掛Flash一起內(nèi)存映射。STM32對(duì)W5100的控制就是通過響應(yīng)W5100中斷,然后讀寫W5100的控制和狀態(tài)寄存器來完成:STM32解析W5100的Rx Buffer中的狀態(tài)包,當(dāng)判斷出是上位機(jī)發(fā)送過來的采集命令時(shí),立即給CCD發(fā)出一個(gè)控制命令開始采集,讀取A/D轉(zhuǎn)換器,經(jīng)過前期的圖像處理后,將圖像數(shù)據(jù)逐行高速存入外掛Flash中備份,然后把數(shù)據(jù)從Flash復(fù)制到W5100的Tx Buffer中。這樣,STM32的工作完成,緊接著W5100根據(jù)硬件化的TCP/IP協(xié)議把數(shù)據(jù)自動(dòng)發(fā)送至上位機(jī)PC。?
2.2 系統(tǒng)固件設(shè)計(jì)?
??? W5100提供多種以太網(wǎng)協(xié)議,本系統(tǒng)主要使用TCP/IP協(xié)議。W5100提供了4個(gè)獨(dú)立的Socket通道,每個(gè)Socket工作于TCP/IP協(xié)議的C/S模式:在Server模式下,PC端發(fā)出連接請(qǐng)求,W5100響應(yīng)請(qǐng)求,建立連接,開始控制命令傳輸。在Client模式下,系統(tǒng)向PC發(fā)出連接請(qǐng)求,建立連接,開始圖像數(shù)據(jù)傳輸。?
??? 圖3為系統(tǒng)固件的流程圖。(1)進(jìn)行系統(tǒng)硬件初始化,配置I2C總線和GPIO的間接總線。(2)針對(duì)W5100進(jìn)行網(wǎng)絡(luò)設(shè)置:分配各Socket的工作模式、目標(biāo)IP、PORT、相關(guān)Buffer的大?。辉O(shè)置源(本地)MAC、IP、GATEWAY、SUBNET和PORT。(3)建立Control Socket,工作于Server模式:該Socket處于Listen 狀態(tài),當(dāng)偵聽到有上位機(jī)的Connect請(qǐng)求時(shí),建立連接。STM32通過中斷觸發(fā)從W5100讀取控制字,根據(jù)控制字做出相應(yīng)的操作,開始圖像采集或關(guān)閉Socket。當(dāng)圖像采集完畢后,建立Data Socket工作于Client模式,向上位機(jī)發(fā)送Connect請(qǐng)求建立連接。連接建立后,開始向上位機(jī)發(fā)送數(shù)據(jù),數(shù)據(jù)傳輸完畢后關(guān)閉Control 和Data Socket,完成此次TCP/IP通信。?
?

?
2.3 PC端應(yīng)用軟件設(shè)計(jì)?
??? PC端的應(yīng)用軟件基于VC6.0編寫[3],以豐富完備的按鈕和菜單來實(shí)現(xiàn)本系統(tǒng)的人機(jī)交換功能。軟件編寫的側(cè)重點(diǎn)在于顯示和數(shù)據(jù)處理方面,本文不做贅述。圖4為該軟件運(yùn)行截圖。?
?

?
??? 本文提出了一種基于硬件協(xié)議棧芯片W5100的遠(yuǎn)程圖像采集傳輸系統(tǒng)。本系統(tǒng)使用STM32微控制器實(shí)現(xiàn)圖像數(shù)據(jù)的采集與圖像預(yù)處理,再利用W5100支持的完善的以太網(wǎng)協(xié)議以及其靈活高速的傳輸能力,完成向遠(yuǎn)程終端的圖像數(shù)據(jù)傳輸。本系統(tǒng)結(jié)構(gòu)緊湊,硬件電路設(shè)計(jì)簡(jiǎn)潔明了;在固件方面,在沒有操作系統(tǒng)的支持下,真正實(shí)現(xiàn)了單芯片接入以太網(wǎng),并且開發(fā)了相應(yīng)的應(yīng)用軟件,使本系統(tǒng)具有直接的操作性和商業(yè)價(jià)值。?
參考文獻(xiàn)?
[1] WIZnet Co.,Inc.W5100 datasheet version 1.1.5[R],2006.?
[2] STMicroelectronics. STM32F101 user manual[R],2007.?
[3] 孫鑫, 余安萍. VC++深入詳解[M].北京:電子工業(yè)出版社,2006.
