linux下arm和cc2530的串口通信

linux下arm和cc2530的串口通信

ID:22376297

大小:54.50 KB

页数:6页

时间:2018-10-28

linux下arm和cc2530的串口通信_第1页
linux下arm和cc2530的串口通信_第2页
linux下arm和cc2530的串口通信_第3页
linux下arm和cc2530的串口通信_第4页
linux下arm和cc2530的串口通信_第5页
资源描述:

《linux下arm和cc2530的串口通信》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、Linux下ARM和CC2530的串口通信  中图分类号:TP39文献标识码:A:2095-1302(2016)01-00-03  0引言  由于ARM嵌入式系统具有体积小、功耗低、噪音低、成本低、数据处理能力强等优点,被广泛用作自动控制、智能终端等设备的硬件平台。通常ARM嵌入式平台是在操作系统的支持下工作,常见的操作系统有嵌入式系统是Linux操作系统与ARM硬件平台的结合,兼具了Linux操作系统和ARM嵌入式的优点,是开发智能控制设备的常用组合。物联网是继计算机技术、互联网技术之后世界信息产

2、业发展的新浪潮,它所包含的无线传感网具有使用、安装便利的特点。基于IEEE802.15.4协议的ZigBee技术是随着物联网的兴起而发展起来的一种无线传感网组网方案[1],基于该技术,Ti公司推出了系列网络处理器芯片,其中CC2530是Ti公司推出的第二代网络处理芯片,集成了RF收发器、增强型8051控制器、可编程存储器等模块,具有更卓越的RF性能,更小的封装尺寸和IR产生电路,并支持多种协议如ZigBeePRO、ZigBeeRF4CE等[2],由其组成的无线传感网可用于居家、消费类电子产品、工业、

3、医疗等领域。虽然CC2530所采用的CPU技术成熟,有一定的计算、控制等能力,但在控制通信较复杂的场合下不能满足需求,因而需要性能更强的处理器作为上位机,如Linux-ARM嵌入式系统。由此可见,采用Linux-ARM为上位机、CC2530为下位机是一种优秀的智能无线网络组网方案。在由Linux-ARM和CC2530组成的网络系统中,Linux-ARM和CC2530间的通信是该组网方案必须解决的一项技术问题。Linux-ARM嵌入式系统[3]和CC2530均拥有串口通信方式,这可成为两者传递信息的通

4、道。基于以上分析,本文设计了Linux系统下ARMCortexA8的串口通信;使用ZStack协议栈开发了CC2530的串口通信,实现了CortexA8和CC2530间的通信。  1Linux-ARM串口通信  S5PV210AH是三星基于ARMCortexA8内核生产的一款处理器,主频达1GHz,被广泛应用于数据采集、图像处理、智能终端、自控设备、物联网网关等方面。在Linux-ARM系统中,CortexA8的串口通信是在Linux操作系统的控制下完成的,其程序流程图如图1所示。  图1Linux

5、下ARMCortexA8串口通信流程图  为在Linux-ARM系统中进行串口通信,首先需打开串口设备,而Linux系统对设备的管理是通过文件实现的,对串口的操作等同于对文件的操作。Linux系统中的设备管理文件存放在/dev目录中,串口的文件名一般为ttyS*,其中*表示不同的串口,是从0开始的整数。串口可通过open()函数打开:fd=open(“/dev/ttyS0”,O_RD的串口设置过程  在串口参数配置的过程中,termios结构体是完成配置的关键,该结构体包含在termios.h头文件

6、中,其内容如下:  structtermios  {  unsignedshortc_iflag;输入模式标志  unsignedshortc_oflag;输出模式标志  unsignedshortc_cflag;控制模式标志  unsignedshortc_lflag;本地模式标志  unsignedshortc_line;线路规则  unsignedshortc_cc[NCC];控制字  }  串口的详细配置步骤如下:  (1)定义一个termios结构体变量opt,使用tcgetattr()函

7、数把串口参数提取到opt中,相应的语句是tcgetattr(fd,&opt)。为避免打开串口后写入缓存数据的干扰,可使用tcflush(fd,TCIOFLUSH)语句清除缓存中的数据。  (2)串口参数的基本配置包括波特率、校验位、停止位、流控等。在配置程序中可使用cfsetispeed(&opt,B115200)和cfsetospeed(&opt,B115200)分别把串口通信的输入输出波特率设为115200b/s;而数据位、奇偶位、停止位则是通过c_cflag参数的设置实现:可使用opt.c_c

8、flag&=~CSIZE和opt.c_cflag

9、=CS8把数据位设置为8位;使用opt.c_cflag&=~PARENB和opt.c_iflag&=~INPCK让串口通信时不采用奇偶校验;使用opt.c_cflag&=CSTOPB使串口有1位停止位。  (3)串口参数设置。该过程是把opt结构体中的参数设置到串口中,可调用tcsetattr(fd,TCSANOain层中的main()函数开始执行的,main()函数含有系统初始化函数osal_init_system(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。