中文字幕第二一区_久久久久在线视频_精品国产自在现线看久久_亚洲精品一区二区三区电影网

產(chǎn)品分類

當前位置: 首頁 > 傳感測量產(chǎn)品 > 數(shù)據(jù)采集產(chǎn)品 > 工控機

類型分類:
科普知識
數(shù)據(jù)分類:
工控機

TFTP協(xié)議在嵌入式系統(tǒng)中的實現(xiàn)

發(fā)布日期:2022-04-18 點擊率:85

    隨著Internet和PC時代的到來,嵌入式系統(tǒng)成為當前IT產(chǎn)業(yè)的焦點之一。在這種形勢下,家用電器等嵌入式設備的Internet網(wǎng)絡化就成了目前網(wǎng)絡發(fā)展的一個重要方向和必然結果。
    本文基于ARM核處理器的多嵌入式應用綜合開發(fā)平臺,對嵌入式設備聯(lián)網(wǎng)的TCP/IP協(xié)議進行了討論研究。
    1.引言
  
    嵌入式系統(tǒng)是繼IT網(wǎng)絡技術之后,又一個新的技術發(fā)展方向。由于嵌入式系統(tǒng)具有體積小、性能強、功耗低、可靠性高以及面向行業(yè)應用的突出特征,目前己經(jīng)廣泛地應用于軍事國防、消費電子、網(wǎng)絡通信、工業(yè)控制等各個領域。隨著計算機技術與通信技術的發(fā)展,嵌入式系統(tǒng)的研究與開發(fā)也有著越來越重要的實際意義。而ARM是業(yè)界領先的32位嵌入式RISC處理器技術提供商,占領了大約75%的市場。它可為一個完整系統(tǒng)的開發(fā)提供全面的技術支持,技術具有性能高、成本低和能耗省的特點。ARM的微處理器核心正迅速地成為便攜式通信設備、手持計算、多媒體數(shù)字消費和嵌入式解決方案市場中MSC批量生產(chǎn)的標準。
  
    在本項目中利用SAMSUNG公司的S3C44B0X與網(wǎng)絡控制芯片的結合實現(xiàn)了系統(tǒng)通過TFTP協(xié)議從PC機下載資源的功能。
    2.TFTP協(xié)議介紹

    a.TFTP與各種協(xié)議關系
  
    TFTP(Trivial File Transfer Protocol,簡單文件傳輸協(xié)議)是TCP/IP協(xié)議族中的一個用來在客戶機與服務器之間進行簡單文件傳輸?shù)膮f(xié)議,提供不復雜、開銷不大的文件傳輸服務。TFTP承載在UDP上,提供不可靠的數(shù)據(jù)流傳輸服務,不提供存取授權與認證機制,使用超時重傳方式來保證數(shù)據(jù)的到達。與FTP相比,TFTP協(xié)議要簡單得多。現(xiàn)在最普遍使用的是第二版TFTP(TFTP Version 2,RFC1350)使用UDP 的67端口。

圖1 TFTP協(xié)議包頭次序
    因為TFTP使用UDP,而UDP又使用IP,IP可以還使用其它本地通信方法(一般為以太網(wǎng))。因此一個TFTP包中會有以下幾段:本地媒介頭,IP頭,數(shù)據(jù)報頭,TFTP頭,剩下的就是TFTP數(shù)據(jù)了,具體見圖(1)。TFTP在IP頭中不指定任何數(shù)據(jù),但是它使用UDP中的源和目標端口以及包長度域。由TFTP使用的包標記(TID)在這里被用做端口,因此TID必須介于0到65,535之間。TFTP頭中包括兩字節(jié)的操作碼,這個碼指出了包的類型下面我們看看大體上的TFTP包格式。
    b. TFTP包介紹

      TFTP支持五種類型的包,分別如下:
      1 .Read request (RRQ)
      2 .Write request (WRQ)
      3 .Data (DATA)
      4 .Acknowledgment (ACK)
      5 .Error (ERROR)
      圖(2)顯示了TFTP各種包在IP包中的位置:

圖2 TFTP協(xié)議數(shù)據(jù)包格式
    3.硬件實現(xiàn)
  
    系統(tǒng)使用了RTL8019AS 10M ISA網(wǎng)卡芯片接入以太網(wǎng)。RTL8019AS是一款性價比很高的網(wǎng)卡芯片:NE2000兼容,軟件移植性好;接口簡單不用轉換芯片如PCI-ISA橋;價格便宜、帶寬充裕、較長一段時間內(nèi)不會停產(chǎn)。8019有3種配置模式:跳線方式、即插即用P&P方式、串行Flash配置方式。串行模式不與NE2000兼容,P&P模式用在PC機中,這里用不上。只剩下跳線配置模式可用。系統(tǒng)的MCU選擇的三星公司的S3C44B0X芯片,S3C44B0x是基于ARM7TDMI核的處理器,沒有MMU,可以源代碼級跟蹤調試。44B0與RTL8019的電路設計相對來說比較簡單,只需要連接數(shù)據(jù)線、地址選通、中斷等信號線。簡略電路圖如圖(3):

           

圖3 RTL8019與S3C440X的接口電路
    4.軟件設計

      a.RTL8019驅動程序
  RTL8019驅動程序主要包括3個函數(shù) :
  i..RTL8019 初始化函數(shù)。要對網(wǎng)卡的工作參數(shù)進行設置.以使網(wǎng)卡開始工作。
  其主要工作包括:復位網(wǎng)絡芯片,設置MAC地址,設置組播地址,設置DMA傳輸參數(shù)等等。
  ii.收包函數(shù):從網(wǎng)絡中接收數(shù)據(jù)到緩沖區(qū)。
  iii.發(fā)包函數(shù):從緩沖區(qū)向網(wǎng)絡中發(fā)送數(shù)據(jù)。
b.協(xié)議棧的實現(xiàn)
  TFTP的實現(xiàn)其實就是根據(jù)各種協(xié)議,對數(shù)據(jù)打包(當發(fā)送數(shù)據(jù)時)和解包(當接收數(shù)據(jù)時)。主函數(shù)主要部分如下

eth_init();//其主要是清空ARP緩沖區(qū).其中調用了一個功能函數(shù)[2]
arp_init();//清零
Mac_init();//設置MAC地址
ip_init(ip); //主要功能:設置ip地址
udp_init(); //初始化UDP協(xié)議
while (1) net_handle();//處理函數(shù)
  
    前5個函數(shù)主要是初始化工作接下來的int net_handle(void)就要開始進入網(wǎng)絡傳輸了,這里就是協(xié)議棧的核心了:

skb = alloc_skb(ETH_frame_LEN);//選擇一個 SKB
if (eth_rcv(skb) != -1) {
eth_hdr = (struct ethhdr *)(skb->data);
skb_pull(skb, ETH_HLEN);
if (ntohs(eth_hdr->h_proto) == ETH_P_ARP)//是否為ARP包
arp_rcv_packet(skb); //是則進行ARP包應答
else if(ntohs(eth_hdr->h_proto) == ETH_P_IP) //是否為IP包
ip_rcv_packet(skb);//是則進行IP包處理
  
    如果從MAC層收到一個以太網(wǎng)幀,先把收到的以太網(wǎng)幀轉變?yōu)橄鄳膸Y構再去掉其以太網(wǎng)偵頭部, 其中skb_pop(skb, ETH_HLEN)把數(shù)據(jù)指針往后移動ETH_HLEN個字節(jié),而且真正的數(shù)據(jù)長度也做相應的變化..然后根據(jù)幀中的協(xié)議字段判斷其上層為什么協(xié)議.這里幀格式采用的是RFC894,如果其上層為arp協(xié)議,將去掉以太網(wǎng)頭部的數(shù)據(jù)交由ARP處理,同樣如果其上層協(xié)議為IP,也做類似的處理. arp_rcv_packet(skb)只處理的ARP請求消息,如果發(fā)現(xiàn)其為ARP請求,則發(fā)送ARP應答. 接下來就是把這個ARP應答包發(fā)出去,發(fā)送了ARP應答后把剛才請求的者的MAC地址和其IP保存在本機中,其實現(xiàn)采用了簡單循環(huán)區(qū),利用數(shù)組.首先檢查緩沖區(qū)中有無此項,如果有則直接用該項的索引,如果沒有則重新分配索引, 把傳進來的MAC 和IP 賦給新分配的索引 i,。
  
    如果MAC層發(fā)現(xiàn)收到的包上層協(xié)議為IP,則執(zhí)行[1]:
if(ntohs(eth_hdr->h_proto) == ETH_P_IP)
ip_rcv_packet(skb);
  
    首先檢查接受者是不是本機IP,通過檢查后,去掉IP頭部,再檢查其上層協(xié)議類型,如果為UDP,則將包轉交給上層的UDP協(xié)議處理其中udp_rcv_packet(skb)先去掉UDP頭部,再檢查其對應的上層協(xié)議,這里只實現(xiàn)了TFTP協(xié)議,對應語句為skb_pop(skb, sizeof(struct udphdr));
if (ntohs(udp_hdr->dest) == TFTP)
tftp_rcv_packet(skb);

    其中tftp_rcv_packet(skb)根據(jù)TFTP頭部中操作類型而采取不同的動作.對應代碼為:
switch (ntohs(tftp_hdr->th_opcode)) {
/* 只處理寫請求和DATA */
case WRQ:
tftp_rcv_wrq(skb); break;
case data:
tftp_rcv_data(skb); break;
…}
  
    其中tftp_rcv_wrq(skb)先得到請求者的IP和PORT,再發(fā)送塊編號為0的ACK包.然后為數(shù)據(jù)傳輸做些初始化工作,具體為設置接受緩沖區(qū)和接受數(shù)據(jù)長度。:因為TFTP是包裝在UDP里面的,所以首先欲留出UDP頭部的空間,這里要注意的是在UDP層除了為自己留空間外其又會欲留出IP頭的空間,而在IP層除了為自己留空間外其又會欲留出MAC頭的空間.如此便留出了整個協(xié)議棧所要求的頭部空間.調用關系為
  udp_skb_reserve(skb)—ip_skb_reserve(skb)—eth_skb_reserve(skb);
  
    然后該函數(shù)按照ACK包的格式(在

下一篇: PLC、DCS、FCS三大控

上一篇: 索爾維全系列Solef?PV

中文字幕第二一区_久久久久在线视频_精品国产自在现线看久久_亚洲精品一区二区三区电影网

      国产精品少妇自拍| 亚洲国产你懂的| 一区二区三区四区蜜桃| 久久久亚洲午夜电影| 国产精品一区二区久久| 亚洲乱码国产乱码精品精| 免费中文字幕日韩欧美| 黄色日韩网站视频| 久久国产日韩欧美| 国产视频一区在线| 久久国产精品色婷婷| 国产精品性做久久久久久| 在线亚洲精品| 国产精品hd| 一区二区三区视频在线| 欧美人成网站| 中国亚洲黄色| 欧美色视频一区| 亚洲一区二区动漫| 国产精品日韩在线播放| 午夜一区在线| 国产亚洲欧美日韩精品| 欧美在线视频一区| 狠狠综合久久av一区二区小说| 久久国内精品自在自线400部| 国产免费一区二区三区香蕉精| 亚洲天堂av电影| 国产精品视屏| 久久成人一区二区| 一区二区三区在线观看欧美| 美日韩丰满少妇在线观看| 亚洲国产精品综合| 欧美日韩视频专区在线播放 | 性欧美长视频| 黄色亚洲在线| 欧美日韩国产一区二区三区地区 | 国产亚洲一区二区精品| 久久视频一区二区| 亚洲国内精品| 国产精品v片在线观看不卡 | 亚洲欧美日韩精品久久| 国产亚洲精品bv在线观看| 久久婷婷人人澡人人喊人人爽| 亚洲丁香婷深爱综合| 欧美日韩国产亚洲一区| 欧美一区二区精品久久911| 尤物九九久久国产精品的特点| 欧美福利精品| 欧美伊人久久| 亚洲美女精品久久| 国产伦精品一区二区三区照片91 | 国产日本欧美在线观看| 女生裸体视频一区二区三区| 亚洲性图久久| 亚洲国产精品久久91精品| 欧美午夜视频一区二区| 久久精品日产第一区二区| 亚洲精品一级| 国内精品久久久久影院色 | 国产精品入口66mio| 嫩草成人www欧美| 亚洲欧美日本国产有色| 亚洲激情在线观看视频免费| 国产精品一区毛片| 欧美精品色综合| 久久亚洲欧美国产精品乐播| 亚洲视频在线观看三级| 在线观看亚洲| 国产一区二区三区免费不卡| 欧美日韩综合久久| 欧美xart系列高清| 久久精品在线免费观看| 亚洲女人天堂av| 一本久久综合亚洲鲁鲁| 韩日精品视频一区| 国产精品女人毛片| 欧美日韩国产电影| 欧美成年视频| 老司机精品福利视频| 欧美伊久线香蕉线新在线| 正在播放亚洲一区| 亚洲欧洲综合| 亚洲国产精品一区在线观看不卡| 国产一区二区三区av电影| 国产精品成人一区二区艾草| 欧美精品一区二区久久婷婷| 每日更新成人在线视频| 久久漫画官网| 久久亚洲精选| 久久婷婷av| 久久视频在线视频| 久久久久久一区二区| 久久精品亚洲一区二区三区浴池| 性伦欧美刺激片在线观看| 亚洲视频在线观看网站| 亚洲网站在线| 亚洲一区二区三区影院| 亚洲自拍偷拍麻豆| 亚洲欧美日本伦理| 午夜欧美大尺度福利影院在线看| 亚洲一区影院| 亚洲欧美成人精品| 亚洲欧美日韩成人高清在线一区| 亚洲一区影院| 欧美在线综合视频| 久久久999精品视频| 久久亚洲精品视频| 欧美成人精品在线播放| 欧美激情按摩| 国产精品久久综合| 国产亚洲激情在线| 在线看不卡av| 91久久精品一区二区别| 亚洲精品一区二区在线观看| 一区二区欧美在线| 亚久久调教视频| 老司机凹凸av亚洲导航| 欧美精品国产精品| 国产精品色一区二区三区| 国产欧美日韩不卡免费| 伊人久久久大香线蕉综合直播 | 欧美日韩国产在线播放网站| 欧美午夜性色大片在线观看| 国产欧美日韩激情| 黄色一区二区在线| 日韩午夜在线电影| 亚洲欧美激情视频| 久久综合久久久| 欧美视频在线观看| 国产日韩欧美在线播放不卡| 尤物yw午夜国产精品视频明星| 亚洲精品视频在线看| 亚洲欧美不卡| 欧美成人性网| 国产精品自拍网站| 亚洲欧洲精品天堂一级| 亚洲一区二区毛片| 老鸭窝91久久精品色噜噜导演| 欧美日韩一区二区三区在线看| 国产一区二区三区在线免费观看| 亚洲激情视频网站| 久久av红桃一区二区小说| 欧美久久久久中文字幕| 国产亚洲永久域名| 一本一本久久a久久精品综合麻豆| 先锋亚洲精品| 欧美日韩一级视频| 在线视频国产日韩| 午夜精品区一区二区三| 欧美激情欧美狂野欧美精品| 国产亚洲欧美一区| 亚洲午夜黄色| 欧美日韩国产a| 亚洲国产成人精品女人久久久 | 亚洲福利国产精品| 欧美亚洲免费在线| 国产精品www| 亚洲美女av网站| 免费观看30秒视频久久| 国产一区二区丝袜高跟鞋图片| 在线亚洲自拍| 欧美日本在线观看| 亚洲激情av在线| 久久一二三区| 黑人极品videos精品欧美裸| 亚洲免费在线精品一区| 欧美日韩一区二区免费在线观看| 在线看欧美日韩| 久久在线91| 在线国产亚洲欧美| 久久久噜噜噜久久中文字幕色伊伊| 国产精品都在这里| 亚洲视频1区| 欧美日韩亚洲免费| 99热这里只有精品8| 欧美精品乱人伦久久久久久| 亚洲国产日韩在线| 久久免费高清| 精品动漫av| 美女诱惑一区| 亚洲黄色一区二区三区| 美女主播一区| 亚洲啪啪91| 欧美精品一区视频| 夜夜嗨av色一区二区不卡| 欧美美女喷水视频| 99国产精品私拍| 欧美性天天影院| 亚洲免费一在线| 国产一区二区三区免费不卡| 久久久久久久999精品视频| 国产亚洲激情| 免费观看亚洲视频大全| 亚洲国产另类 国产精品国产免费| 欧美不卡一卡二卡免费版| 亚洲全部视频| 国产精品久久久久久福利一牛影视| 亚洲免费在线观看视频| 国产日韩av高清| 免费成人av在线|