實(shí)現信息家電連接internet的16位單片機
從目前的情況看,大部分接入方式仍以PC作為網(wǎng)關(guān)來(lái)連接,然而這種情況一般用于大型工業(yè)集散控制系統,如果用于一般的信息家電接入而額外增加一臺,必然會(huì )給產(chǎn)品帶來(lái)高昂的成本,從產(chǎn)品的經(jīng)濟實(shí)用方面來(lái)看并不切實(shí)可行。用嵌入式設備將信息家電接入的方式則很好地解決了這一問(wèn)題?! ‰S著(zhù)網(wǎng)絡(luò )時(shí)代的到來(lái),internet已成為重要的基礎信息設施,這方面的技術(shù)進(jìn)步對于社會(huì )的各個(gè)方面產(chǎn)生了積極影響,很多領(lǐng)域都在不斷探索開(kāi)發(fā)和利用網(wǎng)絡(luò )資源。所謂嵌入式設備一般是由嵌入式微處理器、外圍設備、特定的網(wǎng)絡(luò )協(xié)議以及應用程序等各部分組成,用于實(shí)現對信息家電的遠程控制、監視和管理功能,它代替了傳統的PC機或網(wǎng)關(guān)設備,在數據量不大的情況下能夠符合要求,具有可靠靈活、成本低等優(yōu)點(diǎn)。
本文引用地址:http://dyxdggzs.com/article/172914.htm方案的提出
從信息家電遠程在線(xiàn)訪(fǎng)問(wèn)的角度考慮,對信息家電監測和控制時(shí)存在兩種情況:(1)遠程訪(fǎng)問(wèn)時(shí),信息家電的通信數據量不大,56Kbps的通信速率即可滿(mǎn)足要求;(2)信息家電對實(shí)時(shí)性的要求不高,其時(shí)延可以在1秒以上?;谝陨蟽蓚€(gè)條件在選擇嵌入式設備時(shí),選擇了單片機SPCE061A作為信息家電接入internet的微處理器,同時(shí)采用RTL8019AS作為以太幀的驅動(dòng)芯片,負責以太幀的接收和發(fā)送。最后,通過(guò)RJ45接口發(fā)送狀態(tài)信息到internet和接收來(lái)自internet的控制數據.此外,要實(shí)現信息家電接入internet還需要深入了解TCP/IP協(xié)議和網(wǎng)卡驅動(dòng)程序。
RTL8019AS以太網(wǎng)控制器簡(jiǎn)介
由臺灣Realtek公司生產(chǎn)的RTL8019AS以太網(wǎng)控制器,由于其優(yōu)良的性能、低廉的價(jià)格,使其在市場(chǎng)上10Mbps網(wǎng)卡中占有相當的比例。
2.1主要性能
(1)符合EthernetII與IEEE802.3(10Base5、10Base2、10BaseT)標準;
(2)全雙工,收發(fā)可同時(shí)達到10Mbps的速率;
(3)內置16KB的SRAM,用于收發(fā)緩沖,降低對主處理器的速度要求;
(4)支持8/16位數據總線(xiàn),8個(gè)中斷申請線(xiàn)以及16個(gè)I/0基地址選擇;
(5)支持UTP、AUI、BNC自動(dòng)檢測,還支持對10BaseT拓撲結構的自動(dòng)極性修正;
(6)允許4個(gè)診斷LED引腳可編程輸出;
(7)100腳的TQFP封裝,縮小了PCB尺寸。
RTL8019AS內部可分為遠程DMA接口、本地DMA接口、MAC(介質(zhì)訪(fǎng)問(wèn)控制)邏輯、數據編碼解碼邏輯和其他端口。其內部結構如圖1所示。
圖1RTL8019AS內部結構
ISA總線(xiàn)接口即遠程DMA接口,是指主機對RTL8019AS進(jìn)行控制和操作的總線(xiàn),本地DMA接口是指RTL8019AS與網(wǎng)線(xiàn)的連接通道,作用是完成控制器和網(wǎng)絡(luò )線(xiàn)的數據交換。PNP(即插即用)邏輯部分主要是用來(lái)解決和PC機的連接問(wèn)題,BootROM端口作用是解決遠程啟動(dòng)問(wèn)題;EEPROM端口是用來(lái)操作RTL8019AS和EEPROM芯片24C64的接口,SRAM用來(lái)存放接收和要發(fā)送的數據;MAC邏輯完成數據的發(fā)送和接收過(guò)程中的一些控制;當主機要發(fā)送數據時(shí),將一幀數據經(jīng)過(guò)遠程DMA信道送到以太網(wǎng)絡(luò )控制器中的發(fā)送緩存內存中,然后發(fā)出傳送命令,以太網(wǎng)絡(luò )控制器在送出前一幀的數據后繼而完成此幀的發(fā)送;接收數據時(shí),串行數據組成字節送到FIFO和CRC,發(fā)送邏輯將FIFO送來(lái)的字節在發(fā)送時(shí)脈的控制下逐步按位移出并送到CRC,CRC邏輯在接收時(shí)對輸入的數據進(jìn)行CRC校驗,將結果與幀尾的CRC比較,如不同該幀數據將被拒收,如相同則送到接收緩沖區中。等到接收緩沖區收滿(mǎn)一幀后以中斷或緩存器標志的方式通知主處理器把數據讀走。
2.2RTL8019AS的I/O地址分配
以太網(wǎng)絡(luò )控制器內建的16KB的SRAM,可劃分為接收緩沖區和發(fā)送緩沖區兩個(gè)部分,緩沖區以幀為單位,每頁(yè)256個(gè)字節,16KB的SRAM的頁(yè)范圍規定在0x40—0x80,由PSTART和PSTOP寄存器來(lái)設定接收緩沖頁(yè)的范圍,CURR指向接收到的幀的起始頁(yè),BNRY指向還未讀取的幀之起始頁(yè)亦即下一幀的頁(yè)地址,當CURR到達了接收緩沖頁(yè)的底部即與PSTOP相等時(shí)CURR又會(huì )自動(dòng)指到PSTART處,因此這16KB的SRAM是設計成環(huán)狀緩沖區的,以達到可再使用的目的。
硬件描述
整個(gè)系統的設計核心是臺灣凌陽(yáng)科技股份有限公司推出的具有總線(xiàn)結構的16位高性能CMOS微處理器,可以進(jìn)行高速運算、靈活的I/O口控制和高效的數據操作。SPCE061A具有2K字的SRAM和32K字的閃存ROM.與現有的8位微處理器相比,其提供了速度較高的16位x16位乘法運算指令Mul和內積運算指令Muls,加上優(yōu)化的指令集,SPCE061A的吞吐量大為提高,這使得精簡(jiǎn)的指令集能夠在其中可靠運行。系統硬件電路組成框圖如圖2所示。
圖2系統硬件電路框圖
該硬件結構主要包括兩部分:1.反映信息家電工作狀態(tài)的信息采集2.數據經(jīng)過(guò)TCP/IP協(xié)議壓縮后,通過(guò)以太網(wǎng)控制芯片輸出到internet,或接收來(lái)自internet的控制數據并進(jìn)行解包。該系統基于IEEE1451.2和TCP/IP協(xié)議構建,具有標準化的網(wǎng)絡(luò )接口,允許與Internet或Ethernet網(wǎng)絡(luò )進(jìn)行即時(shí)連接,從而實(shí)現了家電設備和外部網(wǎng)絡(luò )的直接通訊,解決了監控設備和通訊網(wǎng)絡(luò )的接口問(wèn)題,為實(shí)現基于WEB的遠程監控提供了底層的硬件互聯(lián)。
單片機控制以太網(wǎng)卡進(jìn)行數據傳輸
單片機接入以太網(wǎng)必須嵌入TCP/IP協(xié)議,其加載TCP/IP協(xié)議控制以太網(wǎng)卡進(jìn)行數據傳輸,并通過(guò)TCP/IP協(xié)議連接到互聯(lián)網(wǎng)的基本思路是:在遠程控制端進(jìn)行的操作首先通過(guò)路由器尋找到目標,再通過(guò)網(wǎng)卡的ISA接口傳入單片機。在單片機中加載的驅動(dòng)程序將之轉換成物理幀格式,最后由TCP/IP協(xié)議將之轉換為應用層控制命令。因為單片機內部資源有限,要完成上網(wǎng)任務(wù)必須精簡(jiǎn)TCP/IP協(xié)議,本系統中使用了ARP、RARP、IP、UDP等部分協(xié)議,即可保證單片機接入以太網(wǎng),亦保證足夠小的代碼量。單片機主要完成網(wǎng)絡(luò )數據的解包和串口數據的打包,當以太網(wǎng)有數據到達該設備,單片機采用查詢(xún)方式讀取網(wǎng)絡(luò )數據并分析,如果是ARP(物理地址解析協(xié)議)數據包,則轉入ARP處理程序,并發(fā)送RARP數據包,將IP地址和物理地址加入到局域網(wǎng)中建立映射。如果是UDP數據包且IP地址和端口號正確,則接收數據包,數據解包后,將數據部分通過(guò)串口輸出,控制現場(chǎng)設備。反之,如果現場(chǎng)設備通過(guò)串口發(fā)送數據到單片機,單片機將數據按照UDP協(xié)議格式打包,送入RTL8019AS,由RTL8019AS將數據輸出到局域網(wǎng)中。根據需要還可以在收到串口數據時(shí),先完成數據預處理,再將處理好的數據送到局域網(wǎng)。
軟件實(shí)現部分
軟件設計主要包括:以太網(wǎng)控制器初始化程序、驅動(dòng)程序、TCP/IP協(xié)議棧程序、系統網(wǎng)絡(luò )配置程序。以太網(wǎng)控制器驅動(dòng)程序用于設置以太控制芯片的工作狀態(tài)即工作方式,分配收發(fā)數據的緩沖區;系統網(wǎng)絡(luò )配置程序用于給監測系統分配IP地址及域名。限于篇幅,下面僅給出了采用匯編語(yǔ)言編寫(xiě)的RTL8019AS初始化的部分代碼。
.includehardware.inc;//配置單元定義
.public_init//RTL8019AS初始化子程序
_init:
R1=0xffff;//初始化A口為輸出
[P_IOA_Attrib]=R1;
[P_IOA_Dir]=R1;
R1=0xfc07;//將IOB0~IOB2,IOB10~IOB15設置為輸出,其他為輸入
[P_IOB_Attrib]=R1;
[P_IOB_Dir]=R1;
R1=0x0001;//選中00H寄存器
[P_IOB_Data]=R1;
R1=0x0021;//選擇寄存器頁(yè)面0,芯片不工作
[P_IOA_Data]=R1;
[P_IOB_Data]=R1;
R1=0x004c;//設置接收緩沖區,頁(yè)地址為0x4c~0x7f
[P_IOA_Data]=R1;
R1=0x0001;//選中02H寄存器
[P_IOB_Data]=R1;
R1=0x0080;
[P_IOA_Data]=R1;
...
R1=0x0801;//選中01H寄存器
R1=0x0001;//選中00H寄存器
[P_IOB_Data]=R1;
R1=0x0061;//選擇寄存器頁(yè)面1
[P_IOA_Data]=R1;
...
R1=0x0001;
[P_IOB_Data]=R1;
R1=0x0022;//選擇寄存器頁(yè)面0,芯片進(jìn)入工作狀態(tài)
[P_IOA_Data]=R1;
retf;//程序返回
利用16位單片機SPCE061A驅動(dòng)以太控制芯片RTL8019AS,實(shí)現信息家電經(jīng)由嵌入式網(wǎng)關(guān)接入internet的方式,可以方便、低廉地將信息家電的工作狀態(tài)送往遠程PC進(jìn)行監控。這種低成本、高性能的方案,具有可靠靈活的特點(diǎn),適用于通信速率不大,允許延時(shí)的家庭自動(dòng)化設備。用戶(hù)可根據需要,按上述方法,為傳統的家電賦予接入internet的能力。
評論