微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 基于Linux环境下串口通信的应用设计

基于Linux环境下串口通信的应用设计

时间:04-24 来源:电子技术设计 点击:

位,无奇偶校验,1位停止位) ;( 2) 由于上位机ARM 的速度远远高于下位机单片机的速度,所以采用上位机主动联络,下位机等待的方式。在数据传送前ARM 先发送联络信号/0xaa,单片机收到后回答一个/0xbb,表示可以发送,否则继续联络;( 3) 单片机端可以有中断和查询方式收发串口数据。本文采用中断方式;( 4) ARM 处理器s3c2440 采用UART1 和单片机通信,UART0 则作为s3c2440 终端控制台。

  3.1 上位机ARM 的通信程序设计

  由于s3c2440 移植了定制和裁剪后的Linux2.6.32内核的操作系统,对串口的操作采用上述的Linux 下串口操作方法,程序流程图如图2 所示。

  

  3.2 下位机单片机的通信程序设计

  选用C8051F021 的定时器T1 作为波特率发生器,晶振采用11.0592 MHz,定时器工作在方式2,计数初值为0xfd,串口工作在串行方式1( 1 - 8 - N - 1) ,采用中断方式收发数据。

  

  4 结束语

  随着近年来嵌入式Linux 在国内的应用范围日益壮大,基于ARM 平台的嵌入式Linux 设备也将会越来越多地用在数据采集中作为上位机对数据进行处理、显示、存储、发送。本文所介绍方案适用于大多数场合Linux 下ARM 和单片机的串口通信设计,设计人员只需根据自己的实际需要修改或重新制定通信协议即可。另外需要注意的是由于上位机ARM 的速度比单片机快很多,所以一次不能发送过多的数据,否则极有可能使发送缓冲区溢出而出现数据丢失的现象,开发人员要根据通信双方设备的状况选择合适的帧长度,以达到最佳的传输状态。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top