音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

分析嵌入式系統(tǒng)Internet接入方案

出處:電子技術(shù)應(yīng)用 發(fā)布于:2011-09-03 19:37:07

  摘要:TCP/IP協(xié)議棧大規(guī)模集成電路S7600A的結(jié)構(gòu)、功能、硬件接口和應(yīng)用程序接口;介紹一個基于實時任務(wù)操作系統(tǒng)μs/OS的S7600A應(yīng)用方案,此方案實現(xiàn)了嵌入式系統(tǒng)的Internet接入。

  隨著電子設(shè)備智能化要求的提高和各種功能強大的微處理器的推出,嵌入式系統(tǒng)逐漸成為許多電子設(shè)備不可缺少的一部分,并處在前所未有的發(fā)展期;而互聯(lián)網(wǎng)概念的深入人心更為嵌入式系統(tǒng)與互聯(lián)網(wǎng)的結(jié)合提出了要求。嵌入式系統(tǒng)接入Internet以后,不僅實現(xiàn)了設(shè)備的遠程控制、維護和升級,而且從另外一層意義上講,接入Internet的設(shè)備已經(jīng)成為網(wǎng)絡(luò)共享資源的一部分??梢哉f這是自電子設(shè)備智能化以來設(shè)計思想的又飛躍。

  同時,軟件協(xié)議棧的引入無疑要占用更多的系統(tǒng)資源,對于嵌入式系統(tǒng)來說是很可觀的。S7600A TCP/IP硬件協(xié)議棧芯片很好地解決了資源和成本有限的嵌入式系統(tǒng)的Internet接入問題。

  入式系統(tǒng)是面向用戶、面向產(chǎn)品、面向應(yīng)用的,它必須與具體應(yīng)用相結(jié)合才會具有生命力、才更具有優(yōu)勢。因此可以這樣理解上述三個面向的含義,即嵌入式系統(tǒng)是與應(yīng)用緊密結(jié)合的,它具有很強的專用性,必須結(jié)合實際系統(tǒng)需求進行合理的裁減利用。

  嵌入式系統(tǒng)是將先進的計算機技術(shù)、半導(dǎo)體技術(shù)和電子技術(shù)和各個行業(yè)的具體應(yīng)用相結(jié)合后的產(chǎn)物,這一點就決定了它必然是一個技術(shù)密集、資金密集、高度分散、不斷創(chuàng)新的知識集成系統(tǒng)。所以,介入嵌入式系統(tǒng)行業(yè),必須有一個正確的定位。例如Palm之所以在PDA領(lǐng)域占有70%以上的市場,就是因為其立足于個人電子消費品,著重發(fā)展圖形界面和多任務(wù)管理;而風(fēng)河的Vxworks之所以在火星車上得以應(yīng)用,則是因為其高實時性和高可靠性。

  嵌入式系統(tǒng)必須根據(jù)應(yīng)用需求對軟硬件進行裁剪,滿足應(yīng)用系統(tǒng)的功能、可靠性、成本、體積等要求。所以,如果能建立相對通用的軟硬件基礎(chǔ),然后在其上開發(fā)出適應(yīng)各種需要的系統(tǒng),是一個比較好的發(fā)展模式。目前的嵌入式系統(tǒng)的往往是一個只有幾K到幾十K微內(nèi)核,需要根據(jù)實際的使用進行功能擴展或者裁減,但是由于微內(nèi)核的存在,使得這種擴展能夠非常順利的進行。

  實際上,嵌入式系統(tǒng)本身是一個外延極廣的名詞,凡是與產(chǎn)品結(jié)合在一起的具有嵌入式特點的控制系統(tǒng)都可以叫嵌入式系統(tǒng),而且有時很難以給它下一個準確的定義?,F(xiàn)在人們講嵌入式系統(tǒng)時,某種程度上指近些年比較熱的具有操作系統(tǒng)的嵌入式系統(tǒng),本文在進行分析和展望時,也沿用這一觀點。同時,軟件協(xié)議棧的引入無疑要占用更多的系統(tǒng)資源,對于嵌入式系統(tǒng)來說是很可觀的。S7600A TCP/IP硬件協(xié)議棧芯片很好地解決了資源和成本有限的嵌入式系統(tǒng)的Internet接入問題。

  1 S7600A的內(nèi)部結(jié)構(gòu)

  S7600A內(nèi)部結(jié)構(gòu)如圖1所示,它由網(wǎng)絡(luò)棧、物理層接口、微控制器接口、SRAM接口和片內(nèi)SRAM組成。網(wǎng)絡(luò)棧是該芯片的。它建立在物理層上,包含有實現(xiàn)TCP/IP協(xié)議的特殊的層次化的數(shù)據(jù)結(jié)構(gòu),并完成數(shù)據(jù)的包裝或剝離。其內(nèi)部又可以分為PPP(點對點協(xié)議)、IP(網(wǎng)際協(xié)議)、TCP(傳輸控制協(xié)議)/UDP(用戶數(shù)據(jù)報協(xié)議)幾個層次。在x86/68k并行模式下,由C86來選擇x86或68k。SD[7:0]為地址/數(shù)據(jù)復(fù)用總線,CS為片選輸入,READX和WRITEX為讀寫信號,RS為寄存器選擇輸入,用業(yè)指示地址和數(shù)據(jù)。在串行模式下,SD7為串行數(shù)據(jù)輸入,SD6為串行時鐘輸入,SD5為串行數(shù)據(jù)輸出,WRITEX用來切換讀和寫。另外芯片提供了中斷輸出,用來給MPU發(fā)特定請求。BUSYX用做忙指示。


  2 S7600A內(nèi)部寄存器和數(shù)據(jù)傳輸實例

  S7600A有36個內(nèi)部寄存器,有單字節(jié)、多字節(jié),也有變長的(如PPP_String寄存器,用來存放PAP用戶名和指令,其長度與用戶名和口令的實際長度相關(guān))。對內(nèi)部寄存器的讀寫可以實現(xiàn)對S7600A的各種操作,其中若干寄存器用來做TCP/IP的協(xié)議接口。由于寄存器數(shù)據(jù)量較多,這里不一一介紹,僅舉一個TCP數(shù)據(jù)的傳輸實例來說明對該芯片的操作。

  首先,將Serial_Port_Config寄存器(08H)里的SCTL標志位置1,把對串口的控制權(quán)交給硬件(S7600A),把要傳輸?shù)臄?shù)據(jù)寫到Socket_Data寄存器(2EH)里,S7600A就會把數(shù)據(jù)通過該寄存器放到輸出緩沖區(qū)(1K字節(jié)長度)。注意輸出緩沖區(qū)地址在Buffer_Out_Length寄存器(30H-31H)里,當輸出緩沖區(qū)為全空時,該寄存器里寫一個字節(jié)的數(shù)據(jù),用戶每向Socket_Data寄存器里寫一個字節(jié)的數(shù)據(jù),Buffer_Out_Length寄存器的值就會自動減一。

  當用戶要發(fā)送TCP數(shù)據(jù)時,只要向Data_Send寄存器(30H)里寫任意個字節(jié)的數(shù)據(jù),S7600A就會對輸出緩沖區(qū)里的數(shù)據(jù)進行TCP數(shù)據(jù)處理(自動加入TCP首部,形成TCP段;再加入IP首部,形成IP數(shù)據(jù)報;在串行鏈路上封裝IP數(shù)據(jù)報,形成PPP數(shù)據(jù)幀,如圖2所示。)然后通過UART接口發(fā)送出去。同時Buffer_Out_Length寄存器的值會復(fù)原到3FFH.注意輸出緩沖區(qū)1K字節(jié),超過該值是不允許的。

  3 基于S7600A的接入方案

  3.1 系統(tǒng)構(gòu)成

  基于S7600A的接入方案如圖3所示,系統(tǒng)采用通用單片機AT89C51為控制核。單片機既可以通過并行總線又可以通過串行總線與S7600A相連(在串行時用I/O口實現(xiàn)串行時序),通過對S7600A的操作實現(xiàn)TCP/IP協(xié)議。S7600A經(jīng)UART接口與嵌入式Modem相接,經(jīng)電話線接入Internet。應(yīng)用程序與遠程服務(wù)器或客戶機建立TCP或UDP連接,在此基礎(chǔ)上實現(xiàn)多種應(yīng)用,如FTP、SMTP、POP3、Telnet、IP電話服務(wù)等。從網(wǎng)上獲取的信息可以經(jīng)系統(tǒng)總線傳給嵌入系統(tǒng)的其他部分或者直接顯示在LCD上,同樣系統(tǒng)產(chǎn)生的信息也可發(fā)送到網(wǎng)絡(luò)上。

  3.2 系統(tǒng)的軟件設(shè)計

 ?。?)嵌入式實時多任務(wù)操作系統(tǒng)

  當外界事件或數(shù)據(jù)產(chǎn)生時,能夠接受并以足夠快的速度予以處理,其處理的結(jié)果又能在規(guī)定的時間之內(nèi)來控制生產(chǎn)過程或?qū)μ幚硐到y(tǒng)作出快速響應(yīng),并控制所有實時任務(wù)協(xié)調(diào)一致運行的嵌入式操作系統(tǒng)。

  注:在工業(yè)控制、 軍事設(shè)備、 航空航天等領(lǐng)域?qū)ο到y(tǒng)的響應(yīng)時間有苛刻的要求,這就需要使用實時系統(tǒng)。我們常常說的嵌入式操作系統(tǒng)都是嵌入式實時操作系統(tǒng)。比如μC/OS-II、eCOS和Linux。故對嵌入式實時操作系統(tǒng)的理解應(yīng)該建立在對嵌入式系統(tǒng)的理解之上加入對響應(yīng)時間的要求。

  在這個系統(tǒng)里,引入了實時操作系統(tǒng)(RTOS)。通常對單片機的開發(fā)是在硬件的基礎(chǔ)上直接進行編程,這種方法一般用于規(guī)模較小、較簡單的系統(tǒng),對于規(guī)模較大、較為復(fù)雜的系統(tǒng)會產(chǎn)生一定的隱患,屬于較低層次的開發(fā)。近年來,在嵌入式應(yīng)用中使用實時多任務(wù)操作系統(tǒng)已經(jīng)成為一個熱點、一種時尚,從本質(zhì)意義上講,是系統(tǒng)開發(fā)層次的一種提高。在實時多任務(wù)操作系統(tǒng)的支持下,多個任務(wù)可以按照一定關(guān)系并行工作,CPU資源得到充分利用,系統(tǒng)可靠性得到很好的保證,同時方便組織開發(fā)任務(wù)。

  當前出現(xiàn)了很多商業(yè)的RTOS,但一般價格比較昂貴,代碼不公開。本系統(tǒng)使用了開放源代碼的RTOS μC/OS,這個RTOS已經(jīng)在很多系統(tǒng)上進行了成功的應(yīng)用,同時已經(jīng)被移植到8051上。

 ?。?)S7600A應(yīng)用程序接口(API)

  S7600A以硬件的形式提供了TCP/IP協(xié)議的簡單端口。即便如此,對其內(nèi)部眾多寄存器進行尋址操作了并不容易,建立TCP/IP連接仍然是比較復(fù)雜的過程。幸運的是,廠商為其提供API函數(shù)集,通過調(diào)用該函數(shù)集,可以實現(xiàn)S7600A的所有功能。其硬件獨立性是通過API里的兩個文件iHwIFace.h和iHwIFace.c實現(xiàn)的,用戶在重寫這兩個文件后,可以使API用在不同的CPU上,它實際相當于S7600A的底層驅(qū)動程序。在這個系統(tǒng)里要根據(jù)AT89C51和S7600A的編址連接來確定這兩個文件,其平臺獨立性是通過API里的iSys.h和iSys.c實現(xiàn)的,用戶在重寫這兩個文件后,可以使API運行在不同的操作系統(tǒng)上,在該公司提供的這套API里已經(jīng)附帶了基于μC/OS的這兩個文件。

  該API包括兩個主要部分:iStacApi(實現(xiàn)PPP)和iSockApi(實現(xiàn)Socket連接),對S7600A的功能進行了簡單而有效的封裝,為應(yīng)用軟件的開發(fā)提供了方便。如表1、表2所示。

 

 ?。?)應(yīng)用程序

  應(yīng)用程序建立在RTOS和API之上,并可以實現(xiàn)多任務(wù),在編譯完畢后和RTOS庫以及API庫一起連接生成可執(zhí)行代碼,如圖4所示。

  在系統(tǒng)需接入Internet傳輸數(shù)據(jù)的時候,首先要通過Modem撥號,建立PPP連接,然后再根據(jù)數(shù)據(jù)傳輸?shù)木唧w需要決定建立TCP連接還是UDP連接。一般情況下,TCP建立可靠的連接,可以實現(xiàn)諸如FTP、SMTP等服務(wù);而像IP電話這樣強調(diào)實時性的場合,需要建立UDP連接。

  在需要上網(wǎng)的時候,運行以下程序要,可以實現(xiàn)與ISP(網(wǎng)絡(luò)服務(wù)提供商)之間的撥號連接。首先,程序調(diào)用IsInitStack(),初始化S7600A的硬件協(xié)議棧子系統(tǒng)。如果初始化成功(得到RET_CODE_OK的返值),就開始進行撥號連接。調(diào)用IsPPPCheck()檢查是否已經(jīng)連接,如果還沒有連接,就調(diào)用IsPPPConnect()進行撥號(該函數(shù)的參數(shù)含有進行撥號連接的要素:phata.name表示撥號上網(wǎng)的用戶名,例如撥169時,用戶名就指定為“169”;pdata.modemInitStrings存放初始化Modem用的指令,符合Modem AT指令集,“AT”為Modem指令的前綴。例如,“AT+FAE=0”表示關(guān)閉data/fax自動應(yīng)答模式,“ATE0”表示禁止指令回應(yīng);pdata.baudRate為波特率;pdata.modemDialString為撥號號碼,此處為電話號碼169,“DT”表示用雙音頻撥號);如果已經(jīng)建立了連接,就調(diào)用IsGetOurIP()得到IP地址或者調(diào)用IsPPPKeepAlive()保持連接。

  #include<iReady.h>

  #include<iRtacApi.h>

  #define L_Time 10000

  static int do_connect=1,was_connect=0;

  static iIPAddr ip;

  ppp_task(void)

  {

  RET_CODE rc; //RET_CODE為API函數(shù)執(zhí)行狀態(tài)返值的數(shù)據(jù)類型

  iPPPData pdata; //該數(shù)據(jù)結(jié)構(gòu)包含建立PPP連接的必要數(shù)據(jù)

  static char *initSrtings[5];

  initStrings[]=“AT+FAE=0”; //在字符串數(shù)組里存放Modem初始化指令

  initStrings[]=“ATE0”;

  initStrings[]=0; //設(shè)定該字符為NULL

  initStrings[]=0;

  initStrings[]=0;

  pdata.name=“169”; //撥號上網(wǎng)的用戶名

  pdata.passwd=“169”; //撥號上網(wǎng)的用戶口令

  pdata.baudRate=28800; //設(shè)置波特率

  pdata.hwFlowCtrl=1; //啟用硬件流控制

  pdata.useModem=1;

  pdata.modemDialString=“ATDT 169”; //ATDT為雙音頻撥號指令

  pdata.auth=IPPP_AUTH_PAP; //提供PAP驗證

  pdata.modemInitStrings=initstrings; //Modem初始化的系統(tǒng)指令,必須以NLLL結(jié)尾

  rc=IsInitStack(); //初始化硬件棧子系統(tǒng)

  if{re= =RET_CODE_OK}

  {

  while(do_connect)

  {

  rc=IsPPPCheck(); //檢查PPP連接是否激活

  if(rc= =RET_CODE_OK)

  {

  if(was_connect= =0)

  {

  rc=IsGetOurIP(&ip); //獲取IP地址

  was_connect=1;

  }

  }

  else if(was_connect)

  {

  was_connect=0;

  rc=IsPPPkeepAlive(L_TIME)//在連接失效時重新建立連接

  }

  else

  {

  rc=IsPPPConnect(&pdata,L_TIME); //撥號并與ISP建立PPP連接

  continue;

  }

  smallSleep(L_TIME);

  }

  }

  }

  基于RTOS和S7600A的嵌入式系統(tǒng)Internet接入方案硬件上簡潔可靠、成本適中;軟件開發(fā)上體現(xiàn)了較好的層次思想和較高的技術(shù)水準,可維護性好,可擴展性好。


  
關(guān)鍵詞:嵌入式嵌入式系統(tǒng)

版權(quán)與免責聲明

凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔此類作品侵權(quán)行為的直接責任及連帶責任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負版權(quán)等法律責任。

如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機號碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時間周一至周五
9:00-17:30

關(guān)注官方微信號,
第一時間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務(wù)的動力!意見一經(jīng)采納,將有感恩紅包奉上哦!