新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機(jī)實現(xiàn)嵌入式因特網(wǎng)終端的設(shè)計

單片機(jī)實現(xiàn)嵌入式因特網(wǎng)終端的設(shè)計

作者: 時間:2008-06-25 來源:網(wǎng)絡(luò) 收藏
主要芯片介紹

·SX52BD是Ubicom公司生產(chǎn)的一款RISC指令集的高速單片機(jī)。程序存儲器采用Flash,片內(nèi)容量為4096字節(jié),重復(fù)寫周期1萬次以上;數(shù)據(jù)存儲器是SRAM,片內(nèi)容量為262×8位。SX52BD采用4個階段傳遞(接收-解碼-執(zhí)行-寫入),所以每一時鐘周期執(zhí)行1條指令。當(dāng)最大操作頻率達(dá)到100MHz時,指令以每10ns的時鐘周期運行。通過串口或并口可以對芯片進(jìn)行在線編程,芯片還有在線調(diào)試支持邏輯。該單片機(jī)的最大特點就是虛擬外設(shè)功能,即通過軟件對I/O口進(jìn)行靈活的配置, CPU通過執(zhí)行虛擬軟件模塊直接驅(qū)動I/O口實現(xiàn)硬件外設(shè)功能(如UART、I2C、SPI、Caller ID、FSK等)。

·Cirrus公司的CS8900A是用于嵌入式設(shè)備的低成本以太局域網(wǎng)控制器。它的高度集成設(shè)計使外部器件大大減價。CS8900A包括片上RAM、10Base-T傳輸和接收濾波器,以及帶24mA驅(qū)動的直接ISA總線接口,設(shè)置好其內(nèi)部各個寄存器的值,芯片就可以自動開通網(wǎng)絡(luò)接口,由于使用RJ45連接器,所以利用E2023芯片把網(wǎng)絡(luò)中的信號進(jìn)行轉(zhuǎn)換。

·AT24LC256是Atmel公司生產(chǎn)的一種串行256KB的 EEPROM存儲器,它通過2根數(shù)據(jù)線與外界通信,兼容I2C總線接口,可分別設(shè)為硬件和軟件寫保護(hù),高達(dá)10萬次的擦寫,40年以上的數(shù)據(jù)保護(hù),主要用來存儲網(wǎng)頁信息。

硬件設(shè)計

硬件設(shè)計原理圖如圖1所示。




圖1 硬件設(shè)計原理圖

  CS8900A有三種工作模式:I/O模式、存儲器模式和直接存儲器模式,默認(rèn)為I/O模式,通過程序可變換成其它模式。CS8900A的三種工作模式各有優(yōu)缺點,本設(shè)計中采用的是I/O模式。CS8900A共有8個16位的I/O口,這8個I/O口與片內(nèi)的8個16位寄存器相對應(yīng)。如圖1所示,CS8900A采用8位的數(shù)據(jù)總線方式和SX52BD的RB口相連.地址線和SX52BD的RA口相連。復(fù)位后,SX52BD對CS8900A有唯一地址。

  與24X256有關(guān)的電路,除了上述的和CS8900A連接的部分外,還有PROG接口、晶振和復(fù)位電路。其中,PROG接口用于編程和調(diào)試,用一個4引腳的接頭引出OSC1、OSC2、VCC和地用于編程和調(diào)試,也可以通過串口接振蕩器引腳進(jìn)行在線串行編程。

  CS8900A片內(nèi)集成了一個10Mbps的以太網(wǎng)收發(fā)器,以及所有用于和局域網(wǎng)通信的模擬和數(shù)字電路,通過一個電磁隔離器E2023直接和局域網(wǎng)相連。RJ45為網(wǎng)絡(luò)接頭,可接10Mbps或100Mbps的網(wǎng)絡(luò)集線器。

  需要注意的是,在PCB布線時數(shù)字信號和模擬信號不能混合,信號線不能走在CS8900A下面,輸出變壓器離RJ45盡量近,傳輸線和接收線的終端匹配電阻和電容應(yīng)盡量靠近CS8900A。

軟件設(shè)計

  本設(shè)計的軟件部分分為四部分,主要實現(xiàn)網(wǎng)絡(luò)協(xié)議棧的四層結(jié)構(gòu):數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層和應(yīng)用層

  數(shù)據(jù)鏈路層

  數(shù)據(jù)鏈路層的實現(xiàn)主要由SX52BD控制網(wǎng)卡芯片CS8900來完成。系統(tǒng)工作時,SX52BD首先對網(wǎng)卡芯片進(jìn)行初始化,即寫寄存器LINECTL、RXCTL、RCCFG、BUSCT。發(fā)數(shù)據(jù)時,寫控制寄存器TXCMD,并將發(fā)送數(shù)據(jù)長度寫入TXLENG,然后將數(shù)據(jù)依次寫入PORT0口,網(wǎng)卡芯片將數(shù)據(jù)組織為鏈路層類型并添加填充位和CRC校驗送到網(wǎng)絡(luò)。

  網(wǎng)絡(luò)層

  SX52BD100的協(xié)議棧中,網(wǎng)絡(luò)層的實現(xiàn)就是執(zhí)行IP協(xié)議包,在發(fā)送時,要把發(fā)送出去的消息進(jìn)行IP打包,即加上IP包頭,使之符合IP數(shù)據(jù)包的格式發(fā)送到物理層;將接收到的來自物理層的數(shù)據(jù)包進(jìn)行IP解包,即去掉包頭,送到TCP層。

  傳輸層

  傳輸層的實現(xiàn),即對TCP層的實現(xiàn)。在SX52BD的協(xié)議棧中,對TCP層的編程通過TCP API(應(yīng)用程序接口)來進(jìn)行。TCP的API主要包括下面的函數(shù)和變量:



  發(fā)送數(shù)據(jù)或接收數(shù)據(jù)。接收數(shù)據(jù)時,從IP層來的數(shù)據(jù)經(jīng)過狀態(tài)機(jī)去掉TCP包頭后再送到應(yīng)用層;發(fā)送數(shù)據(jù)時,狀態(tài)機(jī)在數(shù)據(jù)前面加上TCP包頭再發(fā)送到IP層。接收數(shù)據(jù)時,需要用到的TCP API函數(shù)為TCPAppRxBytes()、TCPAppRxData()和TCPAppRxDone();發(fā)送數(shù)據(jù)時,需要用到的TCP API函數(shù)為TCPAppTxBytes()、TCPAppTxData()和TCPAppTxDone()。需要注意的是在建立了TCP連接后才可以發(fā)送數(shù)據(jù)。


  應(yīng)用層

  應(yīng)用層的實現(xiàn),先把源文件下載到AT24C256,,SX52BD通過智能信息表來來管理AT24C256中的資源。當(dāng)一個請求到來時,一個8位的無用信息對統(tǒng)一資源定位器進(jìn)行運算(8位字符加運算),再將得到的數(shù)據(jù)乘以2,并把這個結(jié)果作為一個索引區(qū)中的一個值。在AT24C256中建立了查找表,憑著這個值在E2PROM中去查表,從而找到相應(yīng)的資源。

  應(yīng)用

  本文的英特網(wǎng)終端已應(yīng)用到高速公路導(dǎo)引系統(tǒng)中,終端將高速公路上顯業(yè)屏的信息及狀態(tài)通過網(wǎng)絡(luò)能夠?qū)崟r傳送到監(jiān)測中心計算機(jī),監(jiān)測中心軟件通過GPRS網(wǎng)絡(luò)與終端進(jìn)行雙向通信。本文的終稿很好的滿足了系統(tǒng)實時監(jiān)測的需要。


參考文獻(xiàn):
1、 計算機(jī)通信網(wǎng)基礎(chǔ) 電子工業(yè)出版社
2、 CS8900A產(chǎn)品數(shù)據(jù)參考手冊



關(guān)鍵詞: 因特網(wǎng)終端

評論


技術(shù)專區(qū)

關(guān)閉