基于RS485的PC与ARM之间文件传输的实现

发布者:心若水仙最新更新时间:2016-12-15 来源: eefocus关键字:RS485  PC  ARM  文件传输 手机看文章 扫描二维码
随时随地手机看文章

  1. 引言

  在产业控制场合中,常会要求通过PC向嵌进式微机传输图片文件、数据文件等。RS485由于价格便宜、操纵简单、使用者可以随意编写应用协议等优点,被广泛应用在中等长间隔的控制通讯中。因此,利用RS485实现PC到嵌进式系统的文件传输,十分具有现实意义[6]。

  本文以基于ARM9的三星S3C2410A为嵌进式微处理器,嵌进式Linux为嵌进式操纵系统搭建一个嵌进式系统,成功实现了PC通过RS485向嵌进式系统传输文件。

  2. RS485接口先容

  RS485是一种多点、双向、平衡传输规范,被命名为TIA/EIA-485-A标准。

  RS485由RS232发展而来,它改进了RS232通讯间隔短、速率低的缺点。RS485是一种平衡通讯接口,传输速率最高可达10Mbit/s,最大传输间隔约为1219m,并答应在一条平衡总线上连接最多32个设备。RS485的共模输出电压是-7V~+12V[5]。

  3. 硬件设计

  本文采用FriendlyARM公司的Nano2410V2核心板作为中心处理器模块,并配以外围电路。Nano2410V2核心板以S3C2410A为CPU[1]。

  把S3C2410A的UART0分配给RS485总线,由芯片MAX485完成TTL到差分信号的转换,RS485方向控制线占用GPB2,如图1所示[2]。

  图1 硬件连线图

  PC上使用RS232/RS485转换器,完成RS232到RS485的转换。

  4. RS485驱动程序

  RS485标准只对接口的电气特性作出规定,而不涉及插件、电缆或协议[5]。因此,在Linux下使用RS485接口,可借助串口驱动程序实现。但是,RS485是半双工的,比起RS232,需要多加一个I/O口来控制RS485的方向,该I/O口在发送数据时置高,接收数据时置低。

  发送数据:

  ioctl(fd485, 1, 0);    //fd485:方向控制I/O口驱动设备文件的fd

  write(fdtty, &bufout, 1);   //fdtty:串口驱动设备文件的fd

  delay();

  读取数据:

  ioctl(fd485, 0, 0);

  read(fdtty, &bufin, 1) ;

  方向控制线的驱动程序设计:

  定义file_operatiONs[3][4]:

  static struct file_operations io485_fops=

  {

  owner:THIS_MODULE,

  ioctl:io485_ioctl

  };

  函数io485_ioctl用于设置RS485接口的方向:cmd为0时,设为输进;cmd为1时,设为输出[3][4]。

  static int io485_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg)

  {

  switch(cmd)

  {

  case 0:

  case 1:

  write_gpio_bit(GPIO_B2, cmd);

  return 0;

  default:

  return -EINVAL;

  }

  }

  5. 自定义数据帧格式

  在这里数据帧格式指的是发送方发送一个文件或者接收方接收一个文件的完整过程所需要的每一个字节元素的含义[5]。

  本文定义格式如下:

  (1) 开始符:标志开始传输文件,1个字节。

  (2) 文件名长度:所传输文件的文件名的长度,1个字节。

  (3) 文件名:所传输文件的文件名,字节数由文件名长度决定。

  (4) 文件大小:所传输文件的大小,4个字节。

  (5) 文件内容:所传输文件的数据,字节数由文件大小决定。

  (6) ACK:确认信号。接收方给发送方的反馈信号,表示数据接收完成,1个字节。

  6. 程序流程

  本文对于传输文件,采用的方法为:发送端打开要传输的文件,读取文件数据,然后通过串口向外发送;接收端先建立一个空文件,然后把从RS485接口读到的内容写进该文件里。

  数据校验:为防止文件数据在传输的过程中,丢失或出错,进行校验是必要的。在这里,采用的校验方法是:发送端每发送n个字节,就取1个字节作为校验字节。该字节是前n个字节异或运算的结果;接收端每接收n个字节,就对该n个字节进行异或运算,并把结果与校验字节作比较,相同则传输继续进行,不同则要求发送端重新发送。

  在本文中,ARM作为文件接收方,PC作为文件发送方,接收方程序流程图如图5所示,发送方的程序流程与接收方互补即可。

  图2  程序流程图

  7. 结语

  通过PC向嵌进式微机传输文件在嵌进式系统应用中经常需要。而RS485由于其突出优点,广泛应用在产业控制中。因此通过RS485实现PC到嵌进式系统的文件传输,十分具有现实意义。

  本文作者创新点:提出了一种简单的RS485驱动程序设计方法,并以一种简单、实用、可靠的方法成功实现了PC通过RS485向ARM传输文件


关键字:RS485  PC  ARM  文件传输 引用地址:基于RS485的PC与ARM之间文件传输的实现

上一篇:ARM指令集-数据处理指令
下一篇:RS485收发连接器电路设计集锦

推荐阅读最新更新时间:2024-03-16 15:25

RS485总线系统施工时的注意事项
在485总线系统施工时必须严格按照施工规范施工,特别应注意下面几点。 1、485+和485-数据线一定要互为双绞。 2、布线一定要布多股屏蔽双绞线。多股是为了备用,屏蔽是为了便于出现特殊情况时调试,双绞是因为485通讯采用差模通讯原理,双绞的抗干扰性较好。不采用双绞线是错误的。 3、485总线一定要用手牵手式的总线结构,坚决避免星型连接和分叉连接。 4、设备供电的交流电及机箱一定要真实接地,而且接地良好。有很多地方表面上有三角插座,其实根本没有接地,接地良好可以防止设备被雷击、浪涌冲击。静电累积时可以配合设备的防雷设计较好地释放能量,保护485总线设备和相关芯片不受伤害。 5、为避免强电对其干扰,485总线
[嵌入式]
S5PV210体系结构与接口01:ARM体系结构概述
1. 嵌入式系统的组成 1.1 硬件组成 ① 嵌入式微处理器 目前流行的体系结构:ARM、MIPS、PowerPC、MC68000等 ② 外围设备 主要用于完成存储、通信、调试、显示等功能,常见如下: 存储设备:如RAM、SRAM、Flash等 通信设备:如RS232接口、SPI接口、以太网接口等 显示设备:如显示屏等 1.2 软件组成 两种软件组成的区别在于是否包含嵌入式操作系统 补充:嵌入式系统软硬件构成图 2. 交叉编译和交叉调试 2.1 交叉编译 交叉编译就是在一个平台上生成可以在另一个平台上执行的代码。需要注意的是,编译器本身也是程序,也要在与之对应的某一个CPU上运行。
[单片机]
S5PV210体系结构与接口01:<font color='red'>ARM</font>体系结构概述
物联网智能网关电源电子电路设计图
  该网关设备采用220V交流供电,电源模块直接采用成型稳定的品牌幵关电源。该开关电源输出5V电压,供应板上弱电部分的电源需求。弱电部分为三块:核心板、扩展板和RS485接口板。这三部分的电源各自独立设计,互相隔离,避免了互相干扰。   扩展板电源设计核心板上的电源主要有5V和3.3V两种。5V电源的耗电单位对电源的要求较低,可以直接使用开关电源提供的5V电源。由于核心板是搭载在扩展板上的,核心板没有单独的电源接口,因而核心板的电源也从扩展板上的5V电源接口引入。在扩展板上5V电源接口的入口处还引入了开关和保险丝,以方便设备的幵关和过流保护。3.3V供电的部分采用LM1117-3V3对5V电源进行稳压,电路原理图如图。
[嵌入式]
都说PC混不下去了,苹果Mac给你一个迷之眼神
WSJ指出有关个人电脑( PC )已死的传言一直都很夸张,也许实际上并没有那么夸张。国际数据公司(IDC)的数据显示,过去四个季度的个人电脑销量同比下降8%,比五年前达到的销量峰值低28%。    该市场受压的原因是,多数需要电脑的消费者已拥有一台电脑,并且很少换新机。那些还没有电脑的人则可以选择智能手机和平板电脑等价格更低、使用更方便的产品。    不过,今年目前为止,全球范围的个人电脑销量接近2亿台。因此这个市场依然存在,科技公司对此不能忽视。这就是两大科技公司 苹果 和 微软 目前在该业务加大力度的原因。    上周苹果公司(AAPL)改进了旗下MacBook Pro产品线,增添了新的触摸界面来取代传统的功
[嵌入式]
ARM推出全球最节能处理器
2012年3月14日,中国上海——ARM今天发布了一款拥有全球最高功耗效率的微处理器——ARM® Cortex™-M0+处理器。该款经过优化的Cortex-M0+处理器可针对 家用电器、白色商品、医疗监控、电子测量、照明设备以及功耗与汽车控制器件等各种广泛应用的智能传感器与智能控制系统,提供超低功耗、低成本微控制器(MCU)。 作为ARM Cortex处理器系列的最新成员,32位Cortex-M0+处理器采用了低成本90纳米低功耗(LP)工艺,耗电量仅9µA/MHz,约为目前主流8位或16位处理器的三分之一,却能提供更高的性能。 这种行业领先的低功耗和高性能的结合为仍在使用8位或16位架构的用户提供了一个转型开发32位器件
[单片机]
ARM 学习笔记之 创建工程(keil)
创建工程: 我们使用的是 keil 软件实现对我们编写的程序进行 编辑 + 编译; 链接: http://pan.baidu.com/s/1i5yIh97 密码:7az5 安装完成之后,就要创建新工程了: (1)创建工程文件夹 : /led (2)在 /led 下新建两个文件夹: /list 和 /output (3)在 keil 中创建新的工程: (4)在工程文件夹 /led 下写入工程名:led (一定要在与 list 和 output “平等的” 文件夹内) (5)选中 Samsung 的 S3C2440A:
[单片机]
<font color='red'>ARM</font> 学习笔记之 创建工程(keil)
前有三星,后有ARM和英伟达
“Wintel”让微软和英特尔成为PC时代霸主,但在面对移动市场冲击下,均未能抓住这一波机遇,微软同样在移动互联网时代表现疲软,不被外界看好。但萨提亚·纳德拉接棒微软CEO一职后,昔日微软帝国正在崛起,且富得流油,尤其在这个印度人纳德拉带领下,微软市值将有望破万亿美元,然而,作为昔日霸主的英特尔显然没有那么幸运,在移动芯片可以用衰败来形容,在遭遇阵痛的英特尔, 能否抓住物联网这一波机遇? 遭遇转型阵痛 错失移动互联 高销量和高利润的PC时代一去不复返,英特尔在移动领域没有复制PC市场的辉煌,伴随移动互联的发展,PC行业的似乎更像一潭死水,致使去年有报道称宣布1.2万人规模的大裁员计划,英特尔CEO科再奇曾表示,此项措施虽然
[半导体设计/制造]
AI芯片,开战
春节也没有阻挡AI跨越的脚步,2月16日凌晨,美国OpenAI公司的视频生成模型Sora再次冲击AI界,成为继ChatGPT后又一现象级应用。Sora的问世令世人惊呼:现实不存在了。 短短几日,AI又掀起新一轮浪潮,而作为其核心动力的AI芯片,也迎来巨变。 打倒英伟达 看着英伟达赚钱,市场玩家分外眼红。为了抢占市场,巨头不惜砸大钱布局市场。 先是OpenAI首席执行官山姆·奥特曼(Sam Altman)万亿美元造芯片,再是自嘲为“秃头骗子”的孙正义1000亿美元造AI芯片。 山姆·奥特曼因为万亿美元而登上头条新闻,他曾表示半导体行业需要他,而建立庞大的芯片制造网络需要通过向全球投资者寻求大量资金,他则需要
[嵌入式]
AI芯片,开战
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved