一種嵌入式網(wǎng)絡(luò)接口設(shè)計(jì)
1 引言
本文引用地址:http://www.ex-cimer.com/article/149370.htm隨著Internet 的出現(xiàn)和以太網(wǎng)的迅速發(fā)展, 基于以太網(wǎng)的設(shè)備控制越來越多。目前市場(chǎng)上大部分以太網(wǎng)控制器采用的封裝均超過80 引腳, 如RTL8019AS、DM9008、CS8900A 等。這些器件不僅結(jié)構(gòu)復(fù)雜, 面積龐大, 且系統(tǒng)開銷較大。近來, Microchip推出全球首枚28 引腳獨(dú)立以太網(wǎng)控制器ENC28J60, 可為嵌入式系統(tǒng)提供低引腳數(shù)、低成本、精簡(jiǎn)的遠(yuǎn)程通訊解決方案。
設(shè)計(jì)了以ENC28J60 為核心的以太網(wǎng)接口實(shí)現(xiàn)方案, 描述了該系統(tǒng)硬件架構(gòu)的設(shè)計(jì)方法。在簡(jiǎn)要介紹了以太網(wǎng)控制器ENC28J60 的結(jié)構(gòu)、功能、外圍電路的基礎(chǔ)上, 對(duì)ENC28J60 與Atmega16 的SPI 通訊進(jìn)行了闡述。此方案不僅成本低, 而且可以實(shí)現(xiàn)500Kbps 以上的傳輸速率, 滿足了嵌入式系統(tǒng)的Internet 控制要求。
2 ENC28J60 網(wǎng)絡(luò)接口體系結(jié)構(gòu)
ENC28J60 是帶有行業(yè)標(biāo)準(zhǔn)串行外設(shè)接口(Serial PeripheralInterface, SPI)的獨(dú)立以太網(wǎng)控制器。它符合IEEE 802.3 的全部規(guī)范, 采用了一系列包過濾機(jī)制以對(duì)傳入數(shù)據(jù)包進(jìn)行限制。它還提供了一個(gè)內(nèi)部DMA 模塊, 以實(shí)現(xiàn)快速數(shù)據(jù)吞吐和硬件支持的IP 校驗(yàn)和計(jì)算。與主控制器的通信通過兩個(gè)中斷引腳(INT和WOL)和SPI 腳(SO、SI、SCK、CS)實(shí)現(xiàn), 數(shù)據(jù)傳輸速率高達(dá)10Mb/s.兩個(gè)專用的引腳(LEDA、LEDB)用于連接LED, 進(jìn)行網(wǎng)絡(luò)活動(dòng)狀態(tài)指示。圖1 所示為ENC28J60 的典型應(yīng)用電路。
ENC28J60 由7 個(gè)主要功能模塊組成:SPI 接口, 充當(dāng)主控制器和ENC28J60 之間通信通道; 控制寄存器, 用于控制和監(jiān)視ENC28J60; 雙端口RAM緩沖器, 用于接收和發(fā)送數(shù)據(jù)包; 判優(yōu)器, 當(dāng)DMA、發(fā)送和接收模塊發(fā)出請(qǐng)求時(shí)對(duì)RAM緩沖器的訪問進(jìn)行控制; 總線接口, 對(duì)通過SPI 接收的數(shù)據(jù)和命令進(jìn)行解析;MAC 模塊:實(shí)現(xiàn)符合IEEE 802.3 標(biāo)準(zhǔn)的MAC 邏輯; PHY 模塊, 對(duì)雙絞線上的模擬數(shù)據(jù)進(jìn)行編碼和譯碼。ENC28J60 還包括其他支持模塊, 諸如振蕩器、片內(nèi)穩(wěn)壓器、電平變換器(提供可以接受5V 電壓的I/O 引腳)和系統(tǒng)控制邏輯。
根據(jù)以上說明, ENC28J60 應(yīng)用于嵌入式網(wǎng)絡(luò)接口是非常合適的, 有廣闊的應(yīng)用發(fā)展前景。
3 ENC28J60 在嵌入式網(wǎng)絡(luò)接口的應(yīng)用
3.1 硬件電路設(shè)計(jì)
利用ENC28J60 可以構(gòu)成不同功能的網(wǎng)絡(luò)終端節(jié)點(diǎn), 如網(wǎng)絡(luò)服務(wù)器、帶Internet 功能的設(shè)備、遠(yuǎn)程監(jiān)控(數(shù)據(jù)采集, 診斷)設(shè)備等。圖2 所示為基于ENC28J60 的嵌入式網(wǎng)絡(luò)接口的硬件電路原理圖。電路中有:2 個(gè)LED 狀態(tài)指示燈主要用來顯示網(wǎng)絡(luò)連接狀態(tài), 包括PHY 是否沖突、連接是否建立、是否接收數(shù)據(jù)、連接速度、雙工模式等; 必需的偏置電阻R3(2kΩ, 精度為1%);高速局域網(wǎng)電磁隔離模塊(即RJ45 以太網(wǎng)接口), 應(yīng)用中,ENC28J60 的物理端口與隔離變壓器HR901170A 連接時(shí)必須符合IEEE802.3 對(duì)物理層規(guī)范的要求, 如RJ45 的插孔與隔離變壓器的間隔應(yīng)盡量小, 輸出和輸入差分信號(hào)對(duì)的走線要有很好的隔離。
電路中的主控制器采用Atmel 公司的ATmega16 單片機(jī),它具有先進(jìn)的RISC(精簡(jiǎn)指令集計(jì)算機(jī))結(jié)構(gòu)、16 kB 可編程Flash 存儲(chǔ)器、512 B 的EEPROM和1 kB 片內(nèi)SRAM, 具有豐富的外設(shè)接口, 其SPI 接口允許ATmega16 與外設(shè)進(jìn)行高速的同步數(shù)據(jù)傳輸。本設(shè)計(jì)中ATmega16 SPI 配置為主機(jī)模式,ENC28J60 為從設(shè)備。ATmega16 的SPI 工作模式由CPOL、CPHA 設(shè)置, 根據(jù)ENC28J60 的SPI 讀寫時(shí)序, ATmega16 的SPI工作模式應(yīng)設(shè)置為模式0.ATmega16 通過將ENC28J60 的CS引腳置低實(shí)現(xiàn)與其的同步。SPI 時(shí)鐘由寫入到SPI 發(fā)送緩沖寄存器的數(shù)據(jù)啟動(dòng), SPI MOSI(PB5)引腳上的數(shù)據(jù)發(fā)送秩序由寄存器SPCR 的DORD 位控制, 置位時(shí)數(shù)據(jù)的LSB(最低位)首先發(fā)送, 否則數(shù)據(jù)的MSB(最高位)首先發(fā)送。我們選擇先發(fā)送MSB,同時(shí)接收到的數(shù)據(jù)傳送到接收緩沖寄存器, CPU 進(jìn)行右對(duì)齊從接收緩沖器中讀取接收到的數(shù)據(jù)。應(yīng)該注意, 當(dāng)需要從ENC28J60 中讀取多個(gè)數(shù)據(jù)時(shí), 即使ENC28J60 并不需要ATmega16 串行輸出的數(shù)據(jù), 每讀取一個(gè)數(shù)據(jù)前都要向SPI 發(fā)送緩沖器寫一個(gè)數(shù)據(jù)以啟動(dòng)SPI 接口時(shí)鐘。由于SPI 系統(tǒng)的發(fā)送方向只有1 個(gè)緩沖器, 而在接收方向有2 個(gè)緩沖器, 所以在發(fā)送時(shí)一定要等到移位過程全部結(jié)束后, 才能對(duì)SPI 數(shù)據(jù)寄存器執(zhí)行寫操作; 而在接收數(shù)據(jù)時(shí), 需要在下一個(gè)字節(jié)移位過程結(jié)束之前通過訪問SPI 數(shù)據(jù)寄存器讀取當(dāng)前接收到的數(shù)據(jù), 否則第1 個(gè)數(shù)據(jù)丟失。
3.2 ENC28J60 軟件初始化
在使用ENC28J60 發(fā)送和接收數(shù)據(jù)包前, 必須對(duì)器件進(jìn)行初始化設(shè)置。根據(jù)不同的應(yīng)用, 一些配置選項(xiàng)可能需要更改。初始化設(shè)置工作包括接收和發(fā)送緩沖器、接收過濾器、晶振啟動(dòng)時(shí)間、MAC 寄存器、PHY 寄存器。初始化芯片之前先關(guān)閉單片機(jī)的中斷輸入, 對(duì)RESET 引腳給定一個(gè)持續(xù)的低電平復(fù)位信號(hào), 然后對(duì)相應(yīng)的寄存器進(jìn)行設(shè)置。設(shè)置完成所有需要的寄存器后, 判斷以太網(wǎng)狀態(tài)中的時(shí)鐘啟動(dòng)標(biāo)志位是否置位, 然后開中斷。
系統(tǒng)初始化后進(jìn)入主程序循環(huán), 包括單片機(jī)的控制作用和網(wǎng)絡(luò)數(shù)據(jù)傳輸。對(duì)于以太網(wǎng)傳輸部分來說。主要有兩個(gè)作用:一是對(duì)要發(fā)送的數(shù)據(jù)按照以太網(wǎng)數(shù)據(jù)幀格式進(jìn)行封裝并發(fā)送; 二是對(duì)接收的以太網(wǎng)數(shù)據(jù)幀進(jìn)行解包, 供應(yīng)用程序使用。
相關(guān)推薦
技術(shù)專區(qū)
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機(jī)
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線
- 開關(guān)電源
- 單片機(jī)
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩(wěn)壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機(jī)控制
- 藍(lán)牙
- PLC
- PWM
- 汽車電子
- 轉(zhuǎn)換器
- 電源管理
- 信號(hào)放大器
評(píng)論