PCB抄板,芯片解密,SMT加工,样机制作,IC解密
 
 
公司介绍 新闻中心 PCB抄板 PCB生产 芯片解密 样机制作 成功案例 软件下载
 
PCB抄板,PCB改板,SMT加工,IC解密,PCB生产,样机制作
 
主营项目: PCB抄板,PCB改板,PCB生产,IC解密,样机制作
·最新公告                       点击进入 >>
深科特PCB抄板芯片解密PCB生产企业-为您提供最专业的PCB抄板、芯片解密、PCB生产、样机制作服务,以超强的技术实力成为PCB抄板、芯片解密、PCB生产、IC解密行业界的领跑者。
    任何样板,均可100%保证一次性克隆成功!
 
设计能力     
1   最高速信号:3.125G差分信号
2   最高设计层数:38层
3   最大Connections:18564
4   最大PIN数目:26756
5   最小过孔:8MIL(4MIL激光孔)
6   最小线宽:3MIL
7   最小线间距:4MIL
8   最小BGA PIN间距:0.5mm
9   一块PCB板最多BGA数目:30
10   最大的板面积:640mm*580mm
 
PCB抄板      
·
PCB改板
·
PCB抄板反向推理
·
PCB生产/批量生产
·
BOM清单制作
芯片解密
·
IC解密技术力量
·
单片机解密
·
软件破解
·
芯片反向设计
SMT加工
·
SMT贴片加工
·
OEM/ODM加工
·
元器件采购
·
SMT焊接调试
样机制作
·
样机功能调测
·
样机功能修改
·
元器件仿真
·
疑难器件/模块替换
成功案例
· 不锈钢高压灭菌锅之专业电路板抄板仿制
· 磷化氢气体检测仪之深科特pcb抄板及
· 电路板抄板及软硬件仿制开发案例之万用
· 化学发光定氮之pcb抄板及整机仿制案
· 便捷式光泽度仪之深科特抄板仿制及SM
· 热风净手器之pcb抄板及芯片解密成功
· 专业电路板抄板仿制及软硬件开发案例之
· 微功耗测控终端之深科特pcb抄板及批
· 便携式码流分析仪之电路板抄板仿制及逆
· 深科特专业PCB抄板仿制及反向研发之
 当前位置:首页 > 技术支持
日期:2009-5-9 9:11:41 

    TFTP是一个传输文件的简单协议,它基于UDP协议而实现,但是我们也不能确定有些TFTP协议是基于其它传输协议完成的。此协议设计的时候是进行小文件传输的。因此它不具备通常的FTP的许多功能,它只能从文件服务器上获得或写入文件,不能列出目录,不进行认证,它传输8位数据。

      随着Internet和PC时代的到来,嵌入式系统成为当前IT产业的焦点之一。在这种形势下,家用电器等嵌入式设备的Internet网络化就成了目前网络发展的一个重要方向和必然结果。
      本文基于ARM核处理器的多嵌入式应用综合开发平台,对嵌入式设备联网的TCP/IP协议进行了讨论研究。
 
1.TFTP协议介绍
  A.TFTP与各种协议关系
      TFTP承载在UDP上,提供不可靠的数据流传输服务,不提供存取授权与认证机制,使用超时重传方式来保证数据的到达。与FTP相比,TFTP协议要简单得多。现在最普遍使用的是第二版TFTP(TFTP Version 2,RFC1350)使用UDP 的67端口。

      图1 TFTP协议包头次序
      因为TFTP使用UDP,而UDP又使用IP,IP可以还使用其它本地通信方法(一般为以太网)。因此一个TFTP包中会有以下几段:本地媒介头,IP头,数据报头,TFTP头,剩下的就是TFTP数据了,具体见图(1)。TFTP在IP头中不指定任何数据,但是它使用UDP中的源和目标端口以及包长度域。由TFTP使用的包标记(TID)在这里被用做端口,因此TID必须介于0到65,535之间。TFTP头中包括两字节的操作码,这个码指出了包的类型下面我们看看大体上的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协议数据包格式
2.硬件实现
  系统使用了RTL8019AS 10M ISA网卡芯片接入以太网。RTL8019AS是一款性价比很高的网卡芯片:NE2000兼容,软件移植性好;接口简单不用转换芯片如PCI-ISA桥;价格便宜、带宽充裕、较长一段时间内不会停产。8019有3种配置模式:跳线方式、即插即用P&P方式、串行Flash配置方式。串行模式不与NE2000兼容,P&P模式用在PC机中,这里用不上。只剩下跳线配置模式可用。系统的MCU选择的三星公司的S3C44B0X芯片,S3C44B0x是基于ARM7TDMI核的处理器,没有MMU,可以源代码级跟踪调试。44B0与RTL8019的电路设计相对来说比较简单,只需要连接数据线、地址选通、中断等信号线。简略电路图如图(3)
      图3 RTL8019与S3C440X的接口电路
3.软件设计
      A.RTL8019驱动程序
      RTL8019驱动程序主要包括3个函数 :
      1)RTL8019 初始化函数.要对网卡的工作参数进行设置.以使网卡开始工作.
      其主要工作包括:复位网络芯片,设置MAC地址,设置组播地址,设置DMA传输参数等等.
     2)收包函数:从网络中接收数据到缓冲区.
     3)发包函数:从缓冲区向网络中发送数据.
      B.协议栈的实现
      TFTP的实现其实就是根据各种协议,对数据打包(当发送数据时)和解包(当接收数据时).主函数主要部分如下
      …
      eth_init();//其主要是清空ARP缓冲区.其中调用了一个功能函数[2]
      arp_init();//清零
      Mac_init();//设置MAC地址
      ip_init(ip); //主要功能:设置ip地址
      udp_init(); //初始化UDP协议
      while (1) net_handle();//处理函数
  前5个函数主要是初始化工作接下来的int net_handle(void)就要开始进入网络传输了,这里就是协议栈的核心了:
  …
  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层收到一个以太网帧,先把收到的以太网帧转变为相应的帧结构再去掉其以太网侦头部, 其中skb_pop(skb, ETH_HLEN)把数据指针往后移动ETH_HLEN个字节,而且真正的数据长度也做相应的变化..然后根据帧中的协议字段判断其上层为什么协议.这里帧格式采用的是RFC894,如果其上层为arp协议,将去掉以太网头部的数据交由ARP处理,同样如果其上层协议为IP,也做类似的处理. arp_rcv_packet(skb)只处理的ARP请求消息,如果发现其为ARP请求,则发送ARP应答. 接下来就是把这个ARP应答包发出去,发送了ARP应答后把刚才请求的者的MAC地址和其IP保存在本机中,其实现采用了简单循环区,利用数组.首先检查缓冲区中有无此项,如果有则直接用该项的索引,如果没有则重新分配索引, 把传进来的MAC 和IP 赋给新分配的索引 i,。
  如果MAC层发现收到的包上层协议为IP,则执行[1]:
  if(ntohs(eth_hdr->h_proto) == ETH_P_IP)
  ip_rcv_packet(skb);
  首先检查接受者是不是本机IP,通过检查后,去掉IP头部,再检查其上层协议类型,如果为UDP,则将包转交给上层的UDP协议处理其中udp_rcv_packet(skb)先去掉UDP头部,再检查其对应的上层协议,这里只实现了TFTP协议,对应语句为skb_pop(skb, sizeof(struct udphdr));
  if (ntohs(udp_hdr->dest) == TFTP)
  tftp_rcv_packet(skb);
  其中tftp_rcv_packet(skb)根据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,再发送块编号为0的ACK包.然后为数据传输做些初始化工作,具体为设置接受缓冲区和接受数据长度 。:因为TFTP是包装在UDP里面的,所以首先欲留出UDP头部的空间,这里要注意的是在UDP层除了为自己留空间外其又会欲留出IP头的空间,而在IP层除了为自己留空间外其又会欲留出MAC头的空间.如此便留出了整个协议栈所要求的头部空间.调用关系为
  udp_skb_reserve(skb)—ip_skb_reserve(skb)—eth_skb_reserve(skb);
  然后该函数按照ACK包的格式(在160)赋相应的值.最后将此包交由下层的UDP协议处理.那么此时UDP层是怎么处理的呢?udp_send(skb, client_ip, TFTP, client_port);和TFTP层处理有些类似,先加入自己的头部信息并赋相应的值.然后再交由下层处理, 在IP层其处理的思路也大致差不多,其中ip_send(skb, ip, UDP)定义在ip/_ip.c.其先查看ARP缓冲区中有无此项,如无则返回错误.对应代码为,然后先加入自己的头部信息并赋相应的值.然后再交由下层处理。
  tftp_rcv_data(skb)首先判断接受到的包的目的IP和PORT是不是本机的TFTP协议,通过判断后,再看接受到的包的确认序列号是不是和本机TFTP要求的一致,即看是不是发生了丢包.如果没有则当前接受到的包有效,存入缓冲区,并发送确认序号对应代码为:
  if (client_block == ntohs(tftp_hdr->th_block)) {
  /* 接受一个数据分组 */
  len = skb->len - sizeof(struct tftphdr);
  memcpy(buf + data_len, tftp_hdr->th_data, len);
  data_len += len;
  tftp_send_ack(tftp_hdr, client_block);
  client_block++;
  …
  如果当前接受到的数据小于512字节,则说明传送完毕,但是当发生丢包时,就要求对方重传.采用的机制很简单,就是要求重传确认序号小的分组。
结束语:
       在本项目中利用SAMSUNG公司的S3C44B0X与网络控制芯片的结合实现了系统通过TFTP协议从PC机下载资源的功能。

关键字: PCB抄板 PCB生产 IC解密 样机制作 芯片解密 pcb板 SMT加工
 
·上一篇文章: 嵌入式系统低功耗设计分析
 
·下一篇文章: 无图电路板维修技巧
Copyright 2002-2010 版权所有 深科特集团-深圳市银禾金达科技有限公司
深科特集团——PCB抄板 PCB生产 芯片解密 BOM清单制作 原理图反推 样机调试加工 成品量产
业务部 电话:0755-83766239 83766142 82920849(负责PCB抄板,PCB生产,方案设计,IC解密,成品生产等业务)
空气净化机 远大空气净化机 陈克明面条 巴马科养水 家用净水壶
pcb抄板
pcb抄板
pcb抄板