chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

電子發(fā)燒友App

硬聲App

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>嵌入式開發(fā)>μC/OS-Ⅱ嵌入式以太網(wǎng)通信的設(shè)計(jì)解析

μC/OS-Ⅱ嵌入式以太網(wǎng)通信的設(shè)計(jì)解析

2017-10-23 | rar | 0.3 MB | 次下載 | 1積分

資料介紹

 uC/OS-Ⅱ是一個(gè)源碼開放的搶占式實(shí)時(shí)操作系統(tǒng)。它內(nèi)核短小精悍、可裁減、執(zhí)行時(shí)間確定。系統(tǒng)大部分代碼采用C語(yǔ)言編寫,與硬件有關(guān)的部分都集中在兩個(gè)文件中,給出了規(guī)范的接口說(shuō)明,移植相當(dāng)方便,可應(yīng)用于目前大多數(shù)型號(hào)的8位、16位、32位CPU
  uC/OS-Ⅱ提供的僅僅只是一個(gè)實(shí)時(shí)的調(diào)度及任務(wù)間通信的內(nèi)核,沒(méi)有集成網(wǎng)絡(luò)協(xié)議。上網(wǎng)是當(dāng)前嵌入式設(shè)備的廣泛需求,本文討論輕型TCP/IP協(xié)議棧的引入以及相關(guān)網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序,實(shí)現(xiàn)嵌入式系統(tǒng)的網(wǎng)絡(luò)功能。
  本文所用的硬件系統(tǒng)結(jié)構(gòu)如圖1所示。開發(fā)板基于TMS320LF2407A的含DSP微處理器和LAN91C111以太網(wǎng)控制器。在成功移植了μCOS-Ⅱ的基礎(chǔ)上進(jìn)一步實(shí)現(xiàn)了以太網(wǎng)通訊功能。下面重點(diǎn)介紹TCP/IP協(xié)議棧的引入和LAN91C111驅(qū)動(dòng)的編寫。
  μC/OS-Ⅱ嵌入式以太網(wǎng)通信的設(shè)計(jì)解析
  圖1 嵌入式以太網(wǎng)硬件系統(tǒng)結(jié)構(gòu)圖
  TCP/IP網(wǎng)絡(luò)協(xié)議棧的引入
  在μCOS-Ⅱ上引入下TCP/IP協(xié)議棧,由于嵌入式系統(tǒng)的硬件資源有限,必須使用小型協(xié)議棧。這種協(xié)議棧很多,LwIP是其中之一。
  關(guān)于LwIP簡(jiǎn)介
  LwIP是瑞士計(jì)算機(jī)科學(xué)院(SCICS)的Adam Dunkels等開發(fā)的一套用于嵌入式系統(tǒng)的開放源碼的輕型TCP/IP協(xié)議棧,但Lwip實(shí)現(xiàn)了較為完備的IP,ICMP, UDP, TCP協(xié)議,具有超時(shí)時(shí)間估計(jì)、快速恢復(fù)和重發(fā)、窗口調(diào)整等功能。IwIP在保持協(xié)議主要功能的基礎(chǔ)上減少對(duì)RAMROM的占用,一般它只需要幾十K的RAM和40K左右的ROM就可以運(yùn)行,很適合同μCOS-Ⅱ相配合用在嵌入式系統(tǒng)中。LwIP在設(shè)計(jì)時(shí)就考慮到了將來(lái)的移植問(wèn)題,它把所有與硬件、操作系統(tǒng)、編譯器相關(guān)的部分獨(dú)立出來(lái),放在/src/arch目錄下,因此LwIP在μCOS-Ⅱ上的實(shí)現(xiàn)就是修改這個(gè)目錄下的文件,其它的文件一般不需要修改。下面分別予以說(shuō)明:
  協(xié)議棧的實(shí)現(xiàn)
  ·與CPU及編譯器相關(guān)的include文件 /src/arch/include/arch目錄下cc.h、cpu.h、perf.h中有一些與CPU或編譯器相關(guān)的定義,如數(shù)據(jù)長(zhǎng)度,字的高低位順序等。這應(yīng)該與用戶實(shí)現(xiàn)μCOS-Ⅱ時(shí)定義的數(shù)據(jù)長(zhǎng)度等參數(shù)一致。
  ·與操作系統(tǒng)相關(guān)部分 sys_arch.c中的內(nèi)容是與操作系統(tǒng)相關(guān)的一些結(jié)構(gòu)和函數(shù),主要分四個(gè)部分: (1)sys_sem_t信號(hào)量LwIP中需用信號(hào)量通信,所以在sys_arch中應(yīng)實(shí)現(xiàn)信號(hào)量結(jié)構(gòu)體和處理函數(shù):struct sys_sem_t{ sys_sem_new( )/創(chuàng)建一個(gè)信號(hào)量結(jié)構(gòu) sys_sem_free()/釋放一個(gè)信號(hào)量結(jié)構(gòu)sys_sem_signal( )/發(fā)送信號(hào)量 sys_arch_sem_wait( )/請(qǐng)求信號(hào)量}由于μCOS-Ⅱ已經(jīng)實(shí)現(xiàn)了信號(hào)量OS_EVENT的各種操作,并且功能和LwlP上面幾個(gè)函數(shù)的目的功能是完全一樣的,所以只要把μCOS-Ⅱ的函數(shù)重新包裝成上面的函數(shù),就可以直接使用了。
  (2 )sys_mbox_t消息
  LwIP使用消息隊(duì)列來(lái)緩沖、傳遞數(shù)據(jù)報(bào)文,因此要在sys_arch中實(shí)現(xiàn)消息隊(duì)列結(jié)構(gòu)sys_mbox_t,以及相應(yīng)的操作函數(shù)。
  sys_mbox_new()/創(chuàng)建一個(gè)消息隊(duì)列 sys_mbox_free( ) /釋放一個(gè)消息隊(duì)列
  sys_mbox_post( )/向消息隊(duì)列發(fā)送消息
  sys_arch_mbox_fetch( )/從消息隊(duì)列中獲取消息
  μCOS-Ⅱ同樣實(shí)現(xiàn)了消息隊(duì)列結(jié)構(gòu)及其操作,但是μCOS-Ⅱ沒(méi)有對(duì)消息隊(duì)列中的消息進(jìn)行管理,因此不能直接使用,必須在μCOS-Ⅱ的基礎(chǔ)上重新實(shí)現(xiàn)。
 ?。?)sys_arch_timeout函數(shù)
  LwIP中每個(gè)與外界網(wǎng)絡(luò)連接的線程都有自己的timeout屬性,即等待超時(shí)時(shí)間。這個(gè)屬性表現(xiàn)為每個(gè)線程都對(duì)應(yīng)一個(gè)sys_timeout結(jié)構(gòu)體隊(duì)列,包括這個(gè)線程的timeout時(shí)間長(zhǎng)度
  ,以及超時(shí)后應(yīng)調(diào)用的timeout函數(shù),該函數(shù)會(huì)做一些釋放連接,回收資源的工作.timeout結(jié)構(gòu)體已經(jīng)由LwIP自己在sys.h中定義好了,而且對(duì)結(jié)構(gòu)體隊(duì)列的數(shù)據(jù)操作也由LwIP負(fù)責(zé),我們所要實(shí)現(xiàn)的是如下函數(shù):
  struct sys_timeouts*sys_arch_timeouts(void)
  這個(gè)函數(shù)的功能是返回目前正處于運(yùn)行態(tài)的線程所對(duì)應(yīng)的timeout隊(duì)列指針。timeout隊(duì)列屬于線程的屬性,它是OS相關(guān)的函數(shù),只能由用戶實(shí)現(xiàn)。
 ?。?)sys_thread_new創(chuàng)建新線程
  LwIP可以是單線程運(yùn)行,也可以多線程運(yùn)行。為提高效率并降低編程復(fù)雜度,就需要用戶實(shí)現(xiàn)創(chuàng)建新線程的函數(shù):
  void sys_thread_new(void(*thread)(void*arg), void*arg);
  在μCOS-Ⅱ中,沒(méi)有線程(thread)的概念,只有任務(wù)(Task)。它已經(jīng)提供了創(chuàng)建新任務(wù)的系統(tǒng)API調(diào)用OSTaskCreate,因此只要把OSTaskCreate封裝一下,就可以實(shí)現(xiàn)sys_hread_new.
  ·lib_ arch中庫(kù)函數(shù)的實(shí)現(xiàn)
  LwIP協(xié)議棧中用到了8個(gè)外部函數(shù),這些函數(shù)通常與用戶使用的系統(tǒng)或編譯器有關(guān),因此留給用戶自己實(shí)現(xiàn),有關(guān)程序如下:
  u16_t htons(u16_t n); /16位數(shù)據(jù)高低字節(jié)交換
  u16_t ntohs(u16_t n);
  int strlen(const char * str);/返回字符串長(zhǎng)度
  int strncmp(const char * strl,const char * str2,int len);/字符串比較
  void bcopy(const void * src, void * dest, int len);/內(nèi)存數(shù)據(jù)塊之間的互相拷貝
  void bzero(void *data, int n); /內(nèi)存中指定長(zhǎng)度的數(shù)據(jù)塊清零
  類似于操作系統(tǒng)在硬件上的移植,LwIP的移植也是根據(jù)實(shí)現(xiàn)的硬件以及操作系統(tǒng)對(duì)象,對(duì)相應(yīng)的文件進(jìn)行修改。整個(gè)通訊協(xié)議的引入可以很快實(shí)現(xiàn)。
  LAN91C111驅(qū)動(dòng)的實(shí)現(xiàn)
  在上面為μCOS-Ⅱ引入了TCP/IP協(xié)議棧之后,為了實(shí)現(xiàn)以太網(wǎng)通信功能還必須完成相關(guān)網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序的添加。LwIP的網(wǎng)絡(luò)驅(qū)動(dòng)有一定的模板,其中src/netif/ethernetif.c文件即為驅(qū)動(dòng)的模板,用戶為自己的網(wǎng)絡(luò)設(shè)備實(shí)現(xiàn)驅(qū)動(dòng)時(shí)應(yīng)參照這個(gè)模板,根據(jù)相應(yīng)的網(wǎng)絡(luò)芯片來(lái)實(shí)現(xiàn)。本系統(tǒng)選用的網(wǎng)絡(luò)芯片是由SMSC公司生產(chǎn)的自適應(yīng)10M/100M第三代快速以太網(wǎng)控制器芯片LAN91C111,集成了SMSC/CD協(xié)議的MAC(媒體層)和PHY(物理層)。由于其靈活性和集成度高,具有較高的性價(jià)比。
  LAN91C111工作流程比較簡(jiǎn)單,驅(qū)動(dòng)程序?qū)⒁l(fā)送的數(shù)據(jù)包按指定格式寫入芯片并啟動(dòng)發(fā)送命令,LAN91C111會(huì)自動(dòng)把數(shù)據(jù)包轉(zhuǎn)換成物理幀格式在物理信道上傳輸;反之芯片收到物理信號(hào)后自動(dòng)將其還原成數(shù)據(jù),并按指定格式存放在芯片RAM中以便主機(jī)程序取用。簡(jiǎn)言之就是LAN91C111完成數(shù)據(jù)包和電信號(hào)之間的相
  互轉(zhuǎn)換: 數(shù)據(jù)包 電信號(hào)。LAN91C111的編程主要包括:初始化、發(fā)送數(shù)據(jù)包、接收數(shù)據(jù)包三部分。
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1TC358743XBG評(píng)估板參考手冊(cè)
  2. 1.36 MB  |  330次下載  |  免費(fèi)
  3. 2開關(guān)電源基礎(chǔ)知識(shí)
  4. 5.73 MB  |  6次下載  |  免費(fèi)
  5. 3100W短波放大電路圖
  6. 0.05 MB  |  4次下載  |  3 積分
  7. 4嵌入式linux-聊天程序設(shè)計(jì)
  8. 0.60 MB  |  3次下載  |  免費(fèi)
  9. 5基于FPGA的光纖通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
  10. 0.61 MB  |  2次下載  |  免費(fèi)
  11. 6基于FPGA的C8051F單片機(jī)開發(fā)板設(shè)計(jì)
  12. 0.70 MB  |  2次下載  |  免費(fèi)
  13. 751單片機(jī)窗簾控制器仿真程序
  14. 1.93 MB  |  2次下載  |  免費(fèi)
  15. 8基于51單片機(jī)的RGB調(diào)色燈程序仿真
  16. 0.86 MB  |  2次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33564次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21548次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
  16. 0.00 MB  |  6653次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537796次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191185次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  14. 158M  |  183278次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)