91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于操作系統(tǒng)μs/OS的S7600A的嵌入式系統(tǒng)Internet接入方案

電子設計 ? 作者:電子設計 ? 2018-10-17 08:52 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

實際上,嵌入式系統(tǒng)本身是一個外延極廣的名詞,凡是與產品結合在一起的具有嵌入式特點的控制系統(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的內部結構

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

基于操作系統(tǒng)μs/OS的S7600A的嵌入式系統(tǒng)Internet接入方案


2 S7600A內部寄存器和數據傳輸實例

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

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

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

基于操作系統(tǒng)μs/OS的S7600A的嵌入式系統(tǒng)Internet接入方案

3 基于S7600A的接入方案

3.1 系統(tǒng)構成

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

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

(1)嵌入式實時多任務操作系統(tǒng)

當外界事件或數據產生時,能夠接受并以足夠快的速度予以處理,其處理的結果又能在規(guī)定的時間之內來控制生產過程或對處理系統(tǒng)作出快速響應,并控制所有實時任務協(xié)調一致運行的嵌入式操作系統(tǒng)。

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

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

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

(2)S7600A應用程序接口(API

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

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

基于操作系統(tǒng)μs/OS的S7600A的嵌入式系統(tǒng)Internet接入方案

(3)應用程序

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

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

基于操作系統(tǒng)μs/OS的S7600A的嵌入式系統(tǒng)Internet接入方案

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

#include

#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函數執(zhí)行狀態(tài)返值的數據類型

iPPPData pdata; //該數據結構包含建立PPP連接的必要數據

static char *initSrtings[5];

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

initStrings[]=“ATE0”;

initStrings[]=0; //設定該字符為NULL

initStrings[]=0;

initStrings[]=0;

pdata.name=“169”; //撥號上網的用戶名

pdata.passwd=“169”; //撥號上網的用戶口令

pdata.baudRate=28800; //設置波特率

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

pdata.useModem=1;

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

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

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

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);

}

}

}

基于操作系統(tǒng)μs/OS的S7600A的嵌入式系統(tǒng)Internet接入方案

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5198

    文章

    20443

    瀏覽量

    333990
  • 操作系統(tǒng)

    關注

    37

    文章

    7401

    瀏覽量

    129284
  • Internet
    +關注

    關注

    0

    文章

    401

    瀏覽量

    38464
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    STM32開發(fā)中的五大嵌入式系統(tǒng)

    :RT-Thread是一款開源的實時操作系統(tǒng),免費提供給開發(fā)者使用,可以節(jié)省開發(fā)成本。 2.小I巧高效:RT-Thread的內核設計精簡高效,占用資源較少,適用于資源受限的嵌入式系統(tǒng),能夠在有限的RAM和ROM
    發(fā)表于 01-21 10:48

    什么是嵌入式應用開發(fā)?

    概述 所謂的嵌入式應用開發(fā)就是在嵌入式操作系統(tǒng)下進行開發(fā)、軟硬件綜合開發(fā) ?嵌入式應用開發(fā)?是指在嵌入式
    發(fā)表于 01-12 16:13

    嵌入式系統(tǒng)應用熱門的原因主要有幾個方面

    1. 系統(tǒng)內核小。由于嵌入式系統(tǒng)一般是應用于小型電子裝置的,系統(tǒng)資源相對有限,所以內核較之傳統(tǒng)的操作系統(tǒng)要小得多。比如 Enea 公司的 O
    發(fā)表于 01-08 06:37

    什么是嵌入式操作系統(tǒng)?

    要理解嵌入式操作系統(tǒng)(Embedded Operating System,簡稱 RTOS/EOS),我們可以從本質定義→核心區(qū)別→實際作用→典型特征→嵌入式開發(fā)場景適配,五個維度來拆解, 一
    發(fā)表于 12-09 10:33

    嵌入式系統(tǒng)的定義和應用領域

    。盡管有些嵌入式系統(tǒng)可能包含操作系統(tǒng),但大多數情況下,它們僅由一個程序來控制整個邏輯。 從更專業(yè)的角度來看,嵌入式系統(tǒng)可以被定義為:以應用
    發(fā)表于 11-17 06:49

    單片機的操作系統(tǒng)

    單片機操作系統(tǒng)主要分為實時操作系統(tǒng)(RTOS)和嵌入式操作系統(tǒng)兩類,以下是常見選擇: 實時操作系統(tǒng)(RTOS) ? FreeRTOS ?:
    發(fā)表于 11-14 06:18

    嵌入式實時操作系統(tǒng)的特點

    。 低功耗和小尺寸:實時嵌入式操作系統(tǒng)通常要求運行時的資源占用較少,以適應嵌入式系統(tǒng)對功耗和尺寸的限制。 常見的實時嵌入式
    發(fā)表于 11-13 06:30

    嵌入式實時操作系統(tǒng)及應用開發(fā)(第三版)羅蕾主編光盤鏡像百度云鏈接

    嵌入式實時操作系統(tǒng)及應用開發(fā)(第三版)羅蕾主編光盤鏡像百度云鏈接通過網盤分享的文件:嵌入式系統(tǒng)配套光盤.iso鏈接: https://pan.baidu.com/
    發(fā)表于 11-12 16:20

    入行嵌入式應該怎么準備?

    知識: 一、C/C++編程C/C++是嵌入式系統(tǒng)開發(fā)中最常用的編程語言。熟練掌握C/C++語言將使你能夠理解和編寫底層驅動程序、操作系統(tǒng)以及與硬件交互的代碼。對于嵌入式
    發(fā)表于 08-06 10:34

    經濟日報:國產嵌入式操作系統(tǒng)領軍企業(yè)RT-Thread正在持續(xù)把新思想、新技術留給上海|媒體視角

    經濟日報報道RT-Thread睿賽德2025世界人工智能大會落下帷幕,一系列亮眼成果為上海AI產業(yè)注入動力。作為國產嵌入式操作系統(tǒng)領軍企業(yè),RT-Thread睿賽德在大會中展現(xiàn)創(chuàng)新活力,成為聚焦亮點
    的頭像 發(fā)表于 08-05 21:02 ?1127次閱讀
    經濟日報:國產<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統(tǒng)</b>領軍企業(yè)RT-Thread正在持續(xù)把新思想、新技術留給上海|媒體視角

    新品|Stamp-S3A PIN1.27,ESP-32 嵌入式模組

    本期聚焦兩款高性能嵌入式模組:Stamp-S3A與Stamp-S3APIN1.27,兩款模組均搭載240MHzXtensaLX7雙核處理器,集成8MBFlash,具備可編程RGB指示燈與按鍵輸入
    的頭像 發(fā)表于 07-11 18:05 ?604次閱讀
    新品|Stamp-<b class='flag-5'>S3A</b> PIN1.27,ESP-32 <b class='flag-5'>嵌入式</b>模組

    Linux嵌入式和單片機嵌入式的區(qū)別?

    Linux嵌入式與單片機嵌入式在多個方面存在顯著的區(qū)別,以下是詳細的比較和歸納: 一、基本概念 1. Linux嵌入式: 定義:將Linux操作系統(tǒng)運行在
    發(fā)表于 06-20 09:46

    嵌入式開發(fā),如何選擇適合的系統(tǒng)?

    嵌入式ARM開發(fā)中,面對多種操作系統(tǒng)的選擇,如何做出最適合項目的決策?本文將為您梳理常見系統(tǒng)的特性,幫助您快速了解它們的優(yōu)缺點,以便更好地選擇適合的系統(tǒng)。引言在
    的頭像 發(fā)表于 05-20 11:32 ?1142次閱讀
    <b class='flag-5'>嵌入式</b>開發(fā),如何選擇適合的<b class='flag-5'>系統(tǒng)</b>?

    RT-Thread嵌入式操作系統(tǒng)專業(yè)培訓班-深圳站重磅開啟!

    RT-Thread官方將在深圳舉辦為期三天的嵌入式操作系統(tǒng)專業(yè)培訓班!本次培訓將深入講解RT-Thread嵌入式實時操作系統(tǒng)的核心技術與實戰(zhàn)應用,助力開發(fā)者快速掌握RTOS開發(fā)精髓。無
    的頭像 發(fā)表于 04-11 18:18 ?830次閱讀
    RT-Thread<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統(tǒng)</b>專業(yè)培訓班-深圳站重磅開啟!

    操作系統(tǒng)適配,飛凌嵌入式T527核心板打造高效開發(fā)新體驗

    飛凌嵌入式為基于全志T536處理器開發(fā)設計的FET527N-C核心板適配了全新升級的ForlinxDesktop22.04操作系統(tǒng),這一舉措不僅能夠為用戶帶來了更加流暢、穩(wěn)定的操作體驗,還極大地提升
    的頭像 發(fā)表于 03-20 14:33 ?1363次閱讀
    新<b class='flag-5'>操作系統(tǒng)</b>適配,飛凌<b class='flag-5'>嵌入式</b>T527核心板打造高效開發(fā)新體驗