teeth是什么意思| 扭转乾坤是什么意思| 脑软化灶是什么意思| 高半胱氨酸是什么意思| 防微杜渐什么意思| 芒果什么品种最好吃| 嘴角烂了涂什么药| 低血糖和贫血有什么区别| 威士忌是用什么酿造的| 带状疱疹吃什么药| 蛋皮痒痒是什么病| 胆汁酸高吃什么药| 什么时候不能喷芸苔素| 什么样的血管瘤不用治| 新生儿老打嗝什么原因| 足月是什么意思| 经常晕倒是什么原因引起的| 米醋是什么| 黔驴技穷的意思是什么| 紫荆花的花语是什么| graff是什么牌子| 诸葛亮是一个什么样的人| 海豚用什么呼吸| 血糖高什么症状| 什么的形象| 10月5号是什么星座| 李约瑟难题是什么| 脊髓空洞症吃什么药| vc什么时候吃最好| 什么字五行属金| 房早有什么危害| 晨五行属什么| 什么渐渐什么| 三甲医院是什么意思| 排查是什么意思| 哈库呐玛塔塔什么意思| 白兰地是属于什么酒| 女人更年期是什么症状| 什么蔬菜含钾高| 胃炎伴糜烂吃什么药效果好| 胎盘长什么样子图片| 操逼什么意思| 胰岛是什么器官| 全身酸痛吃什么药好| 奕字属于五行属什么| 倒斗是什么意思| 醴什么意思| 你在做什么| 宿便是什么意思| 婴儿不睡觉是什么原因| 什么的精神| 驳斥是什么意思| 铁低的原因是什么| 重阳节是干什么的| 孕晚期宫缩是什么感觉| 情面是什么意思| 水瓶女和什么星座最配| 樱桃跟车厘子有什么区别| 心脏彩超fs是什么意思| 两班倒是什么意思| 叕怎么读音是什么意思| 梦见买面条有什么预兆| 什么程度要做肾穿刺| 指甲月牙白代表什么| 右手指发麻是什么原因| 西洋参不适合什么人吃| 男宝胶囊为什么不建议吃| 发量少适合什么发型| 后果自负是什么意思| 舌头臭是什么原因| 前列腺炎有什么症状| 肾钙化是什么意思| 去医院测血糖挂什么科| 八月十五是什么节日| 睡午觉有什么好处| 林是什么生肖| 什么是佣金| 低碳生活是什么意思| 什么能让男人变大变长| 女人代谢慢吃什么效果最快| 碳13是检查什么的| 鱼子酱是什么鱼| 狮子的天敌是什么动物| 腹部胀痛什么原因| 西瓜能做什么美食| 暗渡陈仓什么意思| 甘油三酯高吃什么食物好| 切忌是什么意思| 闰六月要给父母买什么| 超度什么意思| 英文为什么怎么写| ol是什么| pd医学上是什么意思| 强迫症什么意思| 奴役是什么意思| 早泄是什么症状| 为什么月经不来| 低筋面粉可以做什么| 喝中药不能吃什么东西| 怀孕建卡需要什么材料| 血红蛋白低说明什么| 莫桑钻和钻石有什么区别| 什么的小草| 谷草转氨酶偏高是什么意思| 蛇和什么属相最配| 黑曜石属于五行属什么| 仲什么意思| 梦见杀蛇是什么意思| 什么什么的荷花| 杜甫被称为什么| 苹果醋什么时候喝最好| 生孩子大出血是什么原因造成的| 什么头什么气| 918是什么日子| 白芷泡水喝有什么功效| 豇豆是什么| 心率快吃什么药效果更佳| 梦见狼是什么意思周公解梦| 中秋节为什么要吃月饼| 何必是什么意思| 肝郁血虚吃什么中成药| 牛蒡是什么| 子宫肌层回声欠均匀是什么意思| 口契是什么字| 天秤座和什么座最配对| 色盲是什么遗传方式| 股票五行属什么| iga什么意思| 梦见自己和别人吵架是什么意思| 流星雨是什么意思| 棕色配什么颜色| 心机是什么意思啊| 缅铃是什么| 吃什么孕酮值可以增高| 翩跹是什么意思| dic医学上是什么意思| 一吃饭就吐是什么原因| 总胆固醇偏高是什么原因| 能量棒是什么东西| 玉是什么结构的字| ih医学上是什么意思| 九月十七是什么星座| 什么水果可以泡酒| 青蛙靠什么呼吸| 羽毛球拍u是什么意思| 牙龈长泡是什么原因| 补血补气吃什么最快最好| 小孩咳嗽挂什么科| 莲蓬什么季节成熟| 阿西吧是什么意思| nhl医学上是什么意思| 什么杀精子最厉害| 黑豆加红枣有什么功效| 雌激素是什么东西| 妈妈的爱是什么| 为什么总是长口腔溃疡| 6月8号是什么星座| 血管瘤是什么样子的图| 口吐白沫是什么原因| 有时候会感到莫名的难过是什么歌| 二甲医院是什么级别| 乳清是什么| 12月4日是什么日子| 什么时候怀孕几率最高| 氢化聚异丁烯是什么| 开字加一笔是什么字| 梦见被猪咬是什么意思| 什么的青年| 高血脂吃什么| 补钙什么时间段最好| 黑加仑是什么| 名人轶事是什么意思| 胃气上逆有什么好的办法治疗| 护理是什么| 娃娃鱼是什么动物| 小受是什么意思| 起薪是什么意思| 关节发黑是什么原因| 包皮有什么影响| 女生第一次是什么感觉| 专业职称是什么| 肠子有问题有什么症状| 口腔溃疡补充什么维生素| 左眉毛跳是什么预兆| 咳嗽嗓子有痰吃什么药| 桑榆是什么意思| 灵芝长什么样子图片| 脾气是什么意思| 胃胀气有什么症状| 睡眠障碍应该挂什么科室| 眼泡是什么意思| 45是什么生肖| 视力模糊是什么原因引起的| 梦见耗子是什么预兆| 肠胃痉挛吃什么药| 什么炒肉| 吃芹菜有什么好处| 脑震荡是什么症状| 结核感染是什么意思| hpv31阳性是什么意思| 看山不是山看水不是水是什么意思| 城镇户口是什么意思| 温州特产是什么| 浸猪笼是什么意思| 95年的属什么生肖| 中山市有什么大学| 蜂蜜水有什么好处| 毛手毛脚什么意思| 胸闷气短吃什么中成药| 什么是血虚| 肝内多发低密度灶是什么意思| 再障性贫血是什么病| 词又被称为什么| 扑朔迷离什么意思| 什么叫压缩性骨折| 多走路有什么好处| 5月是什么月| 立羽读什么| 脚心长痣代表什么| 眼睛肿胀是什么原因| 肌肉痛是什么原因| 九月份是什么季节| 前列腺液是什么样子| 乐高为什么这么贵| 玉米什么时候打药| 备孕前吃什么调理身体| 流汗有什么好处| 中国属于什么半球| 油为什么会浮在水面上| 呵护是什么意思| 三月十九是什么星座| 2011年是什么生肖| 妮子什么意思| 12月5号是什么星座| 进仓是什么意思| 恶对什么| 阿弥陀佛是什么意思| 政客是什么意思| 气血是什么意思| 雪茄为什么不过肺| 活碱是什么| 十月二十三号是什么星座| 症候群什么意思| 什么方法睡觉快速入睡| 心静自然凉是什么意思| 穷搬家富挪坟是什么意思| 11点到12点是什么时辰| 3e是什么意思| 9月24号什么星座| 什么是静电| 那个叫什么| 尿常规能检查出什么| 颜值担当是什么意思| rolls是什么意思| 逼格什么意思| 感冒发烧吃什么药| doosan挖掘机是什么牌子| 款式是什么意思| 深海鱼油有什么作用| 1989年属什么生肖| 腿上无缘无故出现淤青是什么原因| 隐翅虫咬了用什么药膏| 被毒蛇咬了有什么症状| 冒犯是什么意思| 百度

Linux下ARM 和单片机的串口通信设计

嵌入式系统 时间:2025-08-05来源:网络
百度 产值将破10万亿美元本届大会上,业内对5G未来商用寄予厚望,普遍认为5G网络的部署和商用将促使新一轮的产业发展。

摘要:介绍Linux环境下串口通信的设计方法和步骤,并介绍了ARM9微处理器s3c2440在Linux下和C8051Fxxx系列单片机进行串行通信的设计方法,给出了硬件连接和通信程序流程图。该方法可靠、实用,适用于大多数LinuxARM和单片机串口通信的场合。

0引言

数据采集系统中由于单片机侧重于控制,数据处理能力较弱,对采集的数据进行运算处理比较繁琐,如果通过串口与上位机通信,利用上位机强大的数据处理能力和友好的控制界面对数据进行处理和显示则可以提高设计效率。串口通信以其简单的硬件连接,成熟的通信协议,成为上下位机之间通信的首选。移植了Linux操作系统的s3c2440可以在Linux环境下操作串口,降低了串口操作的难度,可以使开发者集中精力开发大规模的应用程序,而不必在操作底层设计上耗费时间。

1硬件连接

s3c2440是三星公司生产的基于ARM9核的处理器,采用3.3V电压供电;C8051Fxxx系列单片机是美国CYGNAL公司推出的与8051兼容的高性能高速单片机,采用3.3V电压供电。两者供电电压相同,所以进行串行口通信时不需要进行电平转换。硬件连接采用最常用的TXD,RXD,GND三线连接方式。注意采用交叉连接方式,即TXDRXD,RXDTXD.

2Linux下串口通信

2.1Linux下串口设备描述

s3c2440上移植了Linux2.6.32操作系统,加载了s3c2440的串口驱动程序,通过Linux提供的串口操作函数和文件操作函数把对串口的操作等同于文件操作,降低了串口的操作难度,提高了效率。在程序中设备和文件都是通过文件描述符来操作的,文件描述符在Linux内核中是一个非负整数。Linux设备文件都存放在/dev目录下,串口也不例外,在/dev中可以找到串口对应的设备文件,本文对应的串口1的设备文件路径是/dev/ttySAC1。

2.2Linux下串口通信程序设计

串口通信需要设置一些参数,如波特率、数据位、停止位,输入输出方式等。这些参数都存在于Linux提供的termios结构中,该结构是Linux系统用于查询和操作各个终端的一个标准接口,定义在头文件中,如下所示:

STructtermios{

tcflag_tc_iflag;/*输入标志*/

tcflag_tc_oflag;/*输出标志*/

tcflag_tc_cflag/*控制标志*/

tcflag_tc_lflag/*本地标志*/

cc_tc_cc[NCCS];/*控制特性*/

};

Linux串口通信步骤可分为以下三步,操作流程如图1所示。

图1操作流程

图1操作流程

第一步:打开串口

调用open()函数打开串口设备文件,若出错则返回-1,成功则返回文件句柄。

#defineUART1/dev/ttySAC1

intfd;

fd=open(UART1,O_RDWR)/*以可读可写方式打开串口设备*/

第二步:设置串口属性

函数tcsetattr()可以设置串口的结构属性,tcgetatt()可以得到串口的结构属性。在termios结构中,最重要的是c_cflag,用户通过对其进行赋值可以实现串口波特率、数据位、停止位、奇偶校验位等参数的设置。c_cc数组中的两个变量VMIN和VTIME判断是否返回输入,c_cc[VTIME]设定字节输入时间计时器,c_cc[VMIN]设定满足读取功能的最低接收字节数。这两个变量的值要设定合理,才能保证串口的通信成功率。

intset_attr(intfd)

{

structtermiosnewtio,oldtio;

tcgetattr(fd,oldtio);

cfsetispeed(newtio,B9600);/*设置读波特率为9600*/

cfsetospeed(newtio,B9600);/*设置写波特率为9600*/

memset(newtio,0

,sizeof(newtio))

;

newtio.c_cflag=CS8|CREAD;/*设置数据位为8位并且使能接收*/

newtio.c_cflag=~PARENB;/*不进行奇偶校验*/

newtio.c_cflag=~CSTOPB;/*1位停止位*/

newtio.c_cc[VMIN]=1;/*当接收到一个字节数据就读取*/

newtio.c_cc[VTIME]=0;/*不使用计时器*/

tcflush(fd,TCIOFLUSH);/*刷清输入输出缓冲区*/

tcsetattr(fd,TCSANOW,newtio)/*使设置的终端属性立即生效*/

}

第三步:串口读写,串口关闭

设置完通信参数后,就可以用标准的文件读写命令read()和write()操作串口了。最后在退出之前,用close()函数关闭串口。

voidrd_wr()

{

write(fd,wbuf,10);

usleep(500000);/*延时50ms等待下位机发送数据*/

read(fd,rbuf,10);

printf(readstringis%sn,rbuf);

}

3通信程序设计

ARM与单片机的串口通信程序包括两方面:一方面是作为上位机的ARM的串口通信程序,另一方面是作为下位机的单片机的串口通信程序。在通信之前必须制定合理的通信协议以保证通信的可靠性和成功率。现约定双方通信协议如下:

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

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

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

图2程序流程图

图2程序流程图

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

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

1 2

关键词: 通信 设计 串口 单片机 ARM Linux

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版
为什么叫太平间 扁平疣是什么病 晚上失眠是什么原因 睡美人最怕什么脑筋急转弯 射手座与什么星座最配
什么东西养胃 合加龙是什么字 跳蛋是什么感觉 什么叫缘分 pwp是什么意思
什么感冒药效果最好 鼻子有痣代表什么 水煮鱼一般用什么鱼 做头发是什么意思 弥可保是什么药
吴用的绰号是什么 bmg是什么意思 一指什么生肖 胃出血有什么症状 慌张的近义词是什么
日本人为什么喜欢喝冰水hcv8jop2ns1r.cn 避孕套上的油是什么油bjcbxg.com 吃什么能立马通大便bjhyzcsm.com 腋窝爱出汗是什么原因hcv9jop4ns8r.cn 大连是什么海adwl56.com
专升本有什么专业hcv8jop5ns3r.cn 老夫是什么意思hcv8jop1ns0r.cn 颈椎病头晕吃什么药好aiwuzhiyu.com 头发大把大把的掉是什么原因hcv9jop6ns4r.cn 左手虎口有痣代表什么clwhiglsz.com
交叉感染是什么意思hcv8jop6ns4r.cn 小麦过敏可以用什么代替面食hcv9jop1ns6r.cn 猕猴桃是什么季节的水果hcv8jop0ns3r.cn 实至名归什么意思hcv8jop2ns5r.cn 男人时间短什么原因hcv9jop6ns3r.cn
丝瓜炒什么好吃hcv9jop4ns7r.cn 糖尿病什么水果不能吃hcv8jop9ns1r.cn 红糖不能和什么一起吃zhongyiyatai.com 吃完芒果后不能吃什么食物hcv9jop6ns4r.cn 什么叫宿根太阳花hcv8jop2ns3r.cn
百度