新聞中心

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

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

作者: 時(shí)間:2011-12-22 來(lái)源:網(wǎng)絡(luò) 收藏

主要芯片介紹

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

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

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

硬件設(shè)計(jì)

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

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

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

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

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

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

軟件設(shè)計(jì)

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

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

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

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

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

  傳輸層

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

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

  應(yīng)用層

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

  應(yīng)用

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



關(guān)鍵詞: SX52BD

評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉