当前位置:首页 > 单片机 > 单片机
[导读]  1. 引言  在产业控制场合中,常会要求通过PC向嵌进式微机传输图片文件、数据文件等。RS485由于价格便宜、操纵简单、使用者可以随意编写应用协议等优点,被广泛应用在中等长间隔的控制通讯中。因此,利用RS485实

  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传输文件


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

特朗普集团近日取消了其新推出的T1智能手机“将在美国制造”的宣传标语,此举源于外界对这款手机能否以当前定价在美国本土生产的质疑。

关键字: 特朗普 苹果 AI

美国总统特朗普在公开场合表示,他已要求苹果公司CEO蒂姆·库克停止在印度建厂,矛头直指该公司生产多元化的计划。

关键字: 特朗普 苹果 AI

4月10日消息,据媒体报道,美国总统特朗普宣布,美国对部分贸易伙伴暂停90天执行新关税政策,同时对中国的关税提高到125%,该消息公布后苹果股价飙升了15%。这次反弹使苹果市值增加了4000多亿美元,目前苹果市值接近3万...

关键字: 特朗普 AI 人工智能 特斯拉

3月25日消息,据报道,当地时间3月20日,美国总统特朗普在社交媒体平台“真实社交”上发文写道:“那些被抓到破坏特斯拉的人,将有很大可能被判入狱长达20年,这包括资助(破坏特斯拉汽车)者,我们正在寻找你。”

关键字: 特朗普 AI 人工智能 特斯拉

1月22日消息,刚刚,新任美国总统特朗普放出重磅消息,将全力支持美国AI发展。

关键字: 特朗普 AI 人工智能

特朗普先生有两件事一定会载入史册,一个是筑墙,一个是挖坑。在美墨边境筑墙的口号确保边境安全,降低因非法移民引起的犯罪率过高问题;在中美科技产业之间挖坑的口号也是安全,美国企业不得使用对美国国家安全构成威胁的电信设备,总统...

关键字: 特朗普 孤立主义 科技产业

据路透社1月17日消息显示,知情人士透露,特朗普已通知英特尔、铠侠在内的几家华为供应商,将要撤销其对华为的出货的部分许可证,同时将拒绝其他数十个向华为供货的申请。据透露,共有4家公司的8份许可被撤销。另外,相关公司收到撤...

关键字: 华为 芯片 特朗普

曾在2018年时被美国总统特朗普称作“世界第八奇迹”的富士康集团在美国威斯康星州投资建设的LCD显示屏工厂项目,如今却因为富士康将项目大幅缩水并拒绝签订新的合同而陷入了僵局。这也导致富士康无法从当地政府那里获得约40亿美...

关键字: 特朗普 富士康

今年5月,因自己发布的推文被贴上“无确凿依据”标签而与推特发生激烈争执后,美国总统特朗普签署了一项行政令,下令要求重审《通信规范法》第230条。

关键字: 谷歌 facebook 特朗普

众所周知,寄往白宫的所有邮件在到达白宫之前都会在他地进行分类和筛选。9月19日,根据美国相关执法官员的通报,本周早些时候,执法人员截获了一个寄给特朗普总统的包裹,该包裹内包含蓖麻毒蛋白。

关键字: 美国 白宫 特朗普
关闭