




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、【W(wǎng)ord版本下載可任意編輯】 分析嵌入式系統(tǒng)Internet接入方案 隨著電子設(shè)備智能化要求的提高和各種功能強(qiáng)大的微處理器的推出,嵌入式系統(tǒng)逐漸成為許多電子設(shè)備不可缺少的一部分,并處在前所未有的發(fā)展期;而互聯(lián)網(wǎng)概念的深入人心更為嵌入式系統(tǒng)與互聯(lián)網(wǎng)的結(jié)合提出了要求。嵌入式系統(tǒng)接入Internet以后,不僅實(shí)現(xiàn)了設(shè)備的遠(yuǎn)程控制、維護(hù)和升級(jí),而且從另外一層意義上講,接入Internet的設(shè)備已經(jīng)成為網(wǎng)絡(luò)共享資源的一部分??梢哉f(shuō)這是自電子設(shè)備智能化以來(lái)設(shè)計(jì)思想的又飛躍。 同時(shí),軟件協(xié)議棧的引入無(wú)疑要占用更多的系統(tǒng)資源,對(duì)于嵌入式系統(tǒng)來(lái)說(shuō)是很可觀的。S7600A TCP/IP硬件協(xié)議棧芯片很好地解決了
2、資源和成本有限的嵌入式系統(tǒng)的Internet接入問(wèn)題。 入式系統(tǒng)是面向用戶(hù)、面向產(chǎn)品、面向應(yīng)用的,它必須與具體應(yīng)用相結(jié)合才會(huì)具有生命力、才更具有優(yōu)勢(shì)。因此可以這樣理解上述三個(gè)面向的含義,即嵌入式系統(tǒng)是與應(yīng)用嚴(yán)密結(jié)合的,它具有很強(qiáng)的專(zhuān)用性,必須結(jié)合實(shí)際系統(tǒng)需求開(kāi)展合理的裁減利用。 嵌入式系統(tǒng)是將先進(jìn)的計(jì)算機(jī)技術(shù)、半導(dǎo)體技術(shù)和電子技術(shù)和各個(gè)行業(yè)的具體應(yīng)用相結(jié)合后的產(chǎn)物,這一點(diǎn)就決定了它必然是一個(gè)技術(shù)密集、資金密集、高度分散、不斷創(chuàng)新的知識(shí)集成系統(tǒng)。所以,介入嵌入式系統(tǒng)行業(yè),必須有一個(gè)正確的定位。例如Palm之所以在PDA領(lǐng)域占有70以上的市場(chǎng),就是因?yàn)槠淞⒆阌趥€(gè)人電子消費(fèi)品,著重發(fā)展圖形界面和多任
3、務(wù)管理;而風(fēng)河的Vxworks之所以在火星車(chē)上得以應(yīng)用,則是因?yàn)槠涓邔?shí)時(shí)性和高可靠性。 嵌入式系統(tǒng)必須根據(jù)應(yīng)用需求對(duì)軟硬件開(kāi)展裁剪,滿(mǎn)足應(yīng)用系統(tǒng)的功能、可靠性、成本、體積等要求。所以,如果能建立相對(duì)通用的軟硬件根底,然后在其上開(kāi)發(fā)出適應(yīng)各種需要的系統(tǒng),是一個(gè)比較好的發(fā)展模式。目前的嵌入式系統(tǒng)的往往是一個(gè)只有幾K到幾十K微內(nèi)核,需要根據(jù)實(shí)際的使用開(kāi)展功能擴(kuò)展或者裁減,但是由于微內(nèi)核的存在,使得這種擴(kuò)展能夠非常順利的開(kāi)展。 實(shí)際上,嵌入式系統(tǒng)本身是一個(gè)外延極廣的名詞,但凡與產(chǎn)品結(jié)合在一起的具有嵌入式特點(diǎn)的控制系統(tǒng)都可以叫嵌入式系統(tǒng),而且有時(shí)很難以給它下一個(gè)準(zhǔn)確的定義?,F(xiàn)在人們講嵌入式系統(tǒng)時(shí),某種程
4、度上指近些年比較熱的具有操作系統(tǒng)的嵌入式系統(tǒng),本文在開(kāi)展分析和展望時(shí),也沿用這一觀點(diǎn)。同時(shí),軟件協(xié)議棧的引入無(wú)疑要占用更多的系統(tǒng)資源,對(duì)于嵌入式系統(tǒng)來(lái)說(shuō)是很可觀的。S7600A TCP/IP硬件協(xié)議棧芯片很好地解決了資源和成本有限的嵌入式系統(tǒng)的Internet接入問(wèn)題。 1 S7600A的內(nèi)部構(gòu)造 S7600A內(nèi)部構(gòu)造如圖1所示,它由網(wǎng)絡(luò)棧、物理層接口、微控制器接口、SRAM接口和片內(nèi)SRAM組成。網(wǎng)絡(luò)棧是該芯片的。它建立在物理層上,包含有實(shí)現(xiàn)TCP/IP協(xié)議的特殊的層次化的數(shù)據(jù)構(gòu)造,并完成數(shù)據(jù)的包裝或剝離。其內(nèi)部又可以分為PPP(點(diǎn)對(duì)點(diǎn)協(xié)議)、IP(網(wǎng)際協(xié)議)、TCP(傳輸控制協(xié)議)/UDP
5、(用戶(hù)數(shù)據(jù)報(bào)協(xié)議)幾個(gè)層次。在x86/68k并行模式下,由C86來(lái)選擇x86或68k。SD為地址/數(shù)據(jù)復(fù)用總線(xiàn),CS為片選輸入,READX和WRITEX為讀寫(xiě)信號(hào),RS為存放器選擇輸入,用業(yè)指示地址和數(shù)據(jù)。在串行模式下,SD7為串行數(shù)據(jù)輸入,SD6為串行時(shí)鐘輸入,SD5為串行數(shù)據(jù)輸出,WRITEX用來(lái)切換讀和寫(xiě)。另外芯片提供了中斷輸出,用來(lái)給MPU發(fā)特定請(qǐng)求。BUSYX用做忙指示。 2 S7600A內(nèi)部存放器和數(shù)據(jù)傳輸實(shí)例 S7600A有36個(gè)內(nèi)部存放器,有單字節(jié)、多字節(jié),也有變長(zhǎng)的(如PPP_String存放器,用來(lái)存放PAP用戶(hù)名和指令,其長(zhǎng)度與用戶(hù)名和口令的實(shí)際長(zhǎng)度相關(guān))。對(duì)內(nèi)部存放器的
6、讀寫(xiě)可以實(shí)現(xiàn)對(duì)S7600A的各種操作,其中若干存放器用來(lái)做TCP/IP的協(xié)議接口。由于存放器數(shù)據(jù)量較多,這里不一一介紹,僅舉一個(gè)TCP數(shù)據(jù)的傳輸實(shí)例來(lái)說(shuō)明對(duì)該芯片的操作。 首先,將Serial_Port_Config存放器(08H)里的SCTL標(biāo)志位置1,把對(duì)串口的控制權(quán)交給硬件(S7600A),把要傳輸?shù)臄?shù)據(jù)寫(xiě)到Socket_Data存放器(2EH)里,S7600A就會(huì)把數(shù)據(jù)通過(guò)該存放器放到輸出緩沖區(qū)(1K字節(jié)長(zhǎng)度)。注意輸出緩沖區(qū)地址在Buffer_Out_Length存放器(30H-31H)里,當(dāng)輸出緩沖區(qū)為全空時(shí),該存放器里寫(xiě)一個(gè)字節(jié)的數(shù)據(jù),用戶(hù)每向Socket_Data存放器里寫(xiě)一個(gè)
7、字節(jié)的數(shù)據(jù),Buffer_Out_Length存放器的值就會(huì)自動(dòng)減一。 當(dāng)用戶(hù)要發(fā)送TCP數(shù)據(jù)時(shí),只要向Data_Send存放器(30H)里寫(xiě)任意個(gè)字節(jié)的數(shù)據(jù),S7600A就會(huì)對(duì)輸出緩沖區(qū)里的數(shù)據(jù)開(kāi)展TCP數(shù)據(jù)處理(自動(dòng)參加TCP首部,形成TCP段;再參加IP首部,形成IP數(shù)據(jù)報(bào);在串行鏈路上封裝IP數(shù)據(jù)報(bào),形成PPP數(shù)據(jù)幀,如圖2所示。)然后通過(guò)UART接口發(fā)送出去。同時(shí)Buffer_Out_Length存放器的值會(huì)復(fù)原到3FFH.注意輸出緩沖區(qū)1K字節(jié),超過(guò)該值是不允許的。 3 基于S7600A的接入方案 3.1 系統(tǒng)構(gòu)成 基于S7600A的接入方案如圖3所示,系統(tǒng)采用通用單片機(jī)AT89C
8、51為控制核。單片機(jī)既可以通過(guò)并行總線(xiàn)又可以通過(guò)串行總線(xiàn)與S7600A相連(在串行時(shí)用I/O口實(shí)現(xiàn)串行時(shí)序),通過(guò)對(duì)S7600A的操作實(shí)現(xiàn)TCP/IP協(xié)議。S7600A經(jīng)UART接口與嵌入式Modem相接,經(jīng)電話(huà)線(xiàn)接入Internet。應(yīng)用程序與遠(yuǎn)程服務(wù)器或客戶(hù)機(jī)建立TCP或UDP連接,在此根底上實(shí)現(xiàn)多種應(yīng)用,如FTP、SMTP、POP3、Telnet、IP電話(huà)服務(wù)等。從網(wǎng)上獲取的信息可以經(jīng)系統(tǒng)總線(xiàn)傳給嵌入系統(tǒng)的其他部分或者直接顯示在LCD上,同樣系統(tǒng)產(chǎn)生的信息也可發(fā)送到網(wǎng)絡(luò)上。 3.2 系統(tǒng)的軟件設(shè)計(jì) (1)嵌入式實(shí)時(shí)多任務(wù)操作系統(tǒng) 當(dāng)外界事件或數(shù)據(jù)產(chǎn)生時(shí),能夠承受并以足夠快的速度予以處理,
9、其處理的結(jié)果又能在規(guī)定的時(shí)間之內(nèi)來(lái)控制生產(chǎn)過(guò)程或?qū)μ幚硐到y(tǒng)作出快速響應(yīng),并控制所有實(shí)時(shí)任務(wù)協(xié)調(diào)一致運(yùn)行的嵌入式操作系統(tǒng)。 注:在工業(yè)控制、 軍事設(shè)備、 航空航天等領(lǐng)域?qū)ο到y(tǒng)的響應(yīng)時(shí)間有苛刻的要求,這就需要使用實(shí)時(shí)系統(tǒng)。我們常常說(shuō)的嵌入式操作系統(tǒng)都是嵌入式實(shí)時(shí)操作系統(tǒng)。比方C/OS-II、eCOS和Linux。故對(duì)嵌入式實(shí)時(shí)操作系統(tǒng)的理解應(yīng)該建立在對(duì)嵌入式系統(tǒng)的理解之上參加對(duì)響應(yīng)時(shí)間的要求。 在這個(gè)系統(tǒng)里,引入了實(shí)時(shí)操作系統(tǒng)(RTOS)。通常對(duì)單片機(jī)的開(kāi)發(fā)是在硬件的根底上直接開(kāi)展編程,這種方法一般用于規(guī)模較小、較簡(jiǎn)單的系統(tǒng),對(duì)于規(guī)模較大、較為復(fù)雜的系統(tǒng)會(huì)產(chǎn)生一定的隱患,屬于較低層次的開(kāi)發(fā)。近年來(lái)
10、,在嵌入式應(yīng)用中使用實(shí)時(shí)多任務(wù)操作系統(tǒng)已經(jīng)成為一個(gè)熱點(diǎn)、一種時(shí)尚,從本質(zhì)意義上講,是系統(tǒng)開(kāi)發(fā)層次的一種提高。在實(shí)時(shí)多任務(wù)操作系統(tǒng)的支持下,多個(gè)任務(wù)可以按照一定關(guān)系并行工作,CPU資源得到充分利用,系統(tǒng)可靠性得到很好的保證,同時(shí)方便組織開(kāi)發(fā)任務(wù)。 當(dāng)前出現(xiàn)了很多商業(yè)的RTOS,但一般價(jià)格比較昂貴,代碼不公開(kāi)。本系統(tǒng)使用了開(kāi)放源代碼的RTOS C/OS,這個(gè)RTOS已經(jīng)在很多系統(tǒng)上開(kāi)展了成功的應(yīng)用,同時(shí)已經(jīng)被移植到8051上。 (2)S7600A應(yīng)用程序接口(API) S7600A以硬件的形式提供了TCP/IP協(xié)議的簡(jiǎn)單端口。即便如此,對(duì)其內(nèi)部眾多存放器開(kāi)展尋址操作了并不容易,建立TCP/IP連接
11、仍然是比較復(fù)雜的過(guò)程。幸運(yùn)的是,廠商為其提供API函數(shù)集,通過(guò)調(diào)用該函數(shù)集,可以實(shí)現(xiàn)S7600A的所有功能。其硬件獨(dú)立性是通過(guò)API里的兩個(gè)文件iHwIFace.h和iHwIFace.c實(shí)現(xiàn)的,用戶(hù)在重寫(xiě)這兩個(gè)文件后,可以使API用在不同的CPU上,它實(shí)際相當(dāng)于S7600A的底層驅(qū)動(dòng)程序。在這個(gè)系統(tǒng)里要根據(jù)AT89C51和S7600A的編址連接來(lái)確定這兩個(gè)文件,其平臺(tái)獨(dú)立性是通過(guò)API里的iSys.h和iSys.c實(shí)現(xiàn)的,用戶(hù)在重寫(xiě)這兩個(gè)文件后,可以使API運(yùn)行在不同的操作系統(tǒng)上,在該公司提供的這套API里已經(jīng)附帶了基于C/OS的這兩個(gè)文件。 該API包括兩個(gè)主要部分:iStacApi(實(shí)現(xiàn)P
12、PP)和iSockApi(實(shí)現(xiàn)Socket連接),對(duì)S7600A的功能開(kāi)展了簡(jiǎn)單而有效的封裝,為應(yīng)用軟件的開(kāi)發(fā)提供了方便。如下表1、表2所示。 (3)應(yīng)用程序 應(yīng)用程序建立在RTOS和API之上,并可以實(shí)現(xiàn)多任務(wù),在編譯完畢后和RTOS庫(kù)以及API庫(kù)一起連接生成可執(zhí)行代碼,如圖4所示。 在系統(tǒng)需接入Internet傳輸數(shù)據(jù)的時(shí)候,首先要通過(guò)Modem撥號(hào),建立PPP連接,然后再根據(jù)數(shù)據(jù)傳輸?shù)木唧w需要決定建立TCP連接還是UDP連接。一般情況下,TCP建立可靠的連接,可以實(shí)現(xiàn)諸如FTP、SMTP等服務(wù);而像IP電話(huà)這樣強(qiáng)調(diào)實(shí)時(shí)性的場(chǎng)合,需要建立UDP連接。 在需要上網(wǎng)的時(shí)候,運(yùn)行以下程序要,可以
13、實(shí)現(xiàn)與ISP(網(wǎng)絡(luò)服務(wù)提供商)之間的撥號(hào)連接。首先,程序調(diào)用IsInitStack(),初始化S7600A的硬件協(xié)議棧子系統(tǒng)。如果初始化成功(得到RET_CODE_OK的返值),就開(kāi)始開(kāi)展撥號(hào)連接。調(diào)用IsPPPCheck()檢查是否已經(jīng)連接,如果還沒(méi)有連接,就調(diào)用IsPPPConnect()開(kāi)展撥號(hào)(該函數(shù)的參數(shù)含有開(kāi)展撥號(hào)連接的要素:表示撥號(hào)上網(wǎng)的用戶(hù)名,例如撥169時(shí),用戶(hù)名就指定為“169”;pdata.modemInitStrings存放初始化Modem用的指令,符合Modem AT指令集,“AT”為Modem指令的前綴。例如,“AT+FAE=0”表示關(guān)閉data/fax自動(dòng)應(yīng)答模式
14、,“ATE0”表示禁止指令回應(yīng);pdata.baudRate為波特率;pdata.modemDialString為撥號(hào)號(hào)碼,此處為電話(huà)號(hào)碼169,“DT”表示用雙音頻撥號(hào));如果已經(jīng)建立了連接,就調(diào)用IsGetOurIP()得到IP地址或者調(diào)用IsPPPKeepAlive()保持連接。 #include #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ù)類(lèi)型 iPPPData pdat
15、a; /該數(shù)據(jù)構(gòu)造包含建立PPP連接的必要數(shù)據(jù) static char *initSrtings; initStrings=“AT+FAE=0”; /在字符串?dāng)?shù)組里存放Modem初始化指令 initStrings=“ATE0”; initStrings=0; /設(shè)定該字符為NULL initStrings=0; initStrings=0; =“169”; /撥號(hào)上網(wǎng)的用戶(hù)名 pdata.passwd=“169”; /撥號(hào)上網(wǎng)的用戶(hù)口令 pdata.baudRate=28800; /設(shè)置波特率 pdata.hwFlowCtrl=1; /啟用硬件流控制 pdata.useModem=1; pda
16、ta.modemDialString=“ATDT 169”; /ATDT為雙音頻撥號(hào)指令 pdata.auth=IPPP_AUTH_PAP; /提供PAP驗(yàn)證 pdata.modemInitStrings=initstrings; /Modem初始化的系統(tǒng)指令,必須以NLLL結(jié)尾 rc=IsInitStack(); /初始化硬件棧子系統(tǒng) ifre= =RET_CODE_OK while(do_connect) rc=IsPPPCheck(); /檢查PPP連接是否激活 if(rc= =RET_CODE_OK) if(was_connect= =0) rc=IsGetOurIP(&ip); /獲取IP地址 wa
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 物業(yè)管理系統(tǒng)開(kāi)發(fā)合作協(xié)議
- 農(nóng)業(yè)科技推廣應(yīng)用案例分析
- 維修服務(wù)委托合同
- 金融產(chǎn)品開(kāi)發(fā)合作協(xié)議
- 旅游行業(yè)游客安全與責(zé)任免除合同
- 學(xué)生自制動(dòng)漫電影小感悟
- 昆蟲(chóng)記的讀后感
- 食品營(yíng)養(yǎng)與健康功能性食品知識(shí)點(diǎn)題集
- 寵物行業(yè)智能門(mén)店與健康管理方案
- 市場(chǎng)營(yíng)銷(xiāo)策略效果評(píng)估表格模板(行業(yè)A)
- 2022年濟(jì)南工程職業(yè)技術(shù)學(xué)院?jiǎn)握芯C合素質(zhì)考試筆試試題及答案解析
- 初中數(shù)學(xué)競(jìng)賽試題匯編
- 湖南非稅在線(xiàn)繳費(fèi)操作步驟
- GB∕Z 27735-2022 野營(yíng)帳篷
- 《法院執(zhí)行實(shí)務(wù)》單元三(上)(課堂PPT)課件
- 高分子材料研究方法 X 射線(xiàn)法
- 【課件】第二單元第三節(jié)漢族民歌課件-2021-2022學(xué)年高中音樂(lè)人音版(2019)必修音樂(lè)鑒賞
- 高中人音版必修 音樂(lè)鑒賞20人民音樂(lè)家課件
- 風(fēng)電齒輪箱講義(20151010)
- 小組合作學(xué)習(xí)評(píng)價(jià)量化表
- 石油化工行業(yè)典型事故案例
評(píng)論
0/150
提交評(píng)論