PC与ARM嵌入式系统间串口通信功能的实现
ARM开发板嵌入式linux系统与主机PC通过串口传输文件
嵌入式linux系统与主机通过串口传输文件
我想如果要从PC机下载东西到开发板的嵌入式linux系统里面,很多人首先会想到用tftpsftp等网络工具从网口下载。
但如果网络用不了,只能通过串口下载怎么办呢?这个时候有两个工具能帮到你:一个是zmrx、zmtx,另外一个是lsz、lrz。
个人觉得zmrx/zmtx没有lsz/lrz 稳定,建议还是用后者。
下面介绍一下lsz/lrz的使用方法。
一、编译lrzsz并下载到开发板上
从
/download/0007000/6293.sht ml下一个lrzsz的tar包,解压缩后输入./configure,然后进入了src 文件夹中,修改了src文件夹中的Makefile文件,配置为与手机对应的交叉编译器,运行make,ok!得到两个可执行文件sz,rz(或者lsz,lrz),把它们下载到开发板linux系统的/bin目录下。
二、情况1: PC机用windows操作系统
如果PC机用的是windows操作系统,串口通信工具可以用系统自带的超级终端。
下面介绍一下传输文件的方法。
1、开发板-->PC机
在开发板上输入sz filename。
在PC机上点击超级终端的菜单“传送”-> “接收文件”,选择下载的位置和Zmodem与崩溃恢复协议,点击接收即可。
2、PC机-->开发板
在开发板上先进入/tmp目录,然后输入rz。
在PC机上点击超级终端的菜单“传送”-> “发送文件”,选择目标文件和Zmodem与崩溃恢复协议,点击发送即可。
单片机与pc串口通信(二)2024
单片机与pc串口通信(二)引言概述:本文将继续介绍关于单片机与PC串口通信的知识,本文主要探讨了在单片机通信程序中如何处理接收和发送数据。
在前一篇文章中,我们已经介绍了单片机与PC之间串口通信的基本原理和通信流程。
接下来,我们将进一步深入探讨如何通过单片机实现数据的接收和发送。
正文内容:1. 数据接收1.1 设定串口参数:设置波特率、数据位数、停止位等参数。
1.2 串口接收中断:使用中断机制来处理接收到的数据,避免阻塞主程序。
1.3 缓存空间:使用缓存空间来存储接收到的数据,以便后续处理。
1.4 数据处理:对接收到的数据进行处理,例如解析数据帧、提取需要的信息等。
1.5 错误处理:处理接收数据时可能出现的错误,例如校验错误、帧格式错误等。
2. 数据发送2.1 设定串口参数:设置波特率、数据位数、停止位等参数。
2.2 数据缓存:使用缓存空间来存储待发送的数据。
2.3 串口发送中断:使用中断机制来处理发送数据,避免阻塞主程序。
2.4 发送数据处理:对发送的数据进行处理,例如封装成数据帧、添加校验码等。
2.5 错误处理:处理发送数据时可能出现的错误,例如发送缓冲溢出等。
3. 常见问题与解决方法3.1 数据丢失:如何防止数据在传输过程中丢失。
3.2 数据粘包与分包:解决因数据传输速度不同而导致的数据粘连或分散问题。
3.3 数据校验:如何使用校验码来验证数据的完整性。
3.4 超时处理:处理接收或发送数据时可能出现的超时情况,避免死锁等问题。
3.5 应用实例:通过实际案例来展示单片机与PC串口通信的应用。
4. 调试与测试技巧4.1 使用调试工具:介绍常用的串口调试工具,用于验证通信是否正常。
4.2 日志记录:使用日志记录调试信息,以便分析问题。
4.3 基础问题排查:介绍常见问题的排查方式,例如检查硬件连接、确认代码逻辑等。
4.4 问题定位与修复:介绍如何定位并修复通信问题。
5. 总结本文从数据接收和发送两个方面详细介绍了单片机与PC串口通信的实现方法。
ARM系列单片机与PC机之间的串行通信
ARM系列单片机与PC机之间的串行通信摘要:论述了实时监测系统中ARM单片机与PC机之间的通信方法,介绍了ARM系列单片机与主机串行通信的结构框图。
与硬件接口电路,讲述了下位机通信程序的设计方法和上位机通讯的软件实现,并给出了上下位机通讯的流程图。
在通信的过程中,需要设定相同的通讯协议才能保证通信的正常。
关键词:单片机;PC机;串行通信;通信程序The Design of Serial Communication Interface between ARM and PCAbstract:This paper discusses communication method between ARM single chip and PC in Real—time monitor system.It introduces structure diagram and serial communication interface circuit between the ARM single chip microcomputer and host computer.It also introduces the design of hypogenous machine of communication program and upper machine communication.Moreover,it gives communication flowcharts.In the process of communication,the proper communication Can be guaranteed only on the condition of the same protocol setting. Key words:single chip;PC;serial communication;communication program.0.引言在实时监测系统中,经常需要接收距离较远的测控点数据,如何快速可靠地实现数据的远程传输,是这些监测系统必须解决的问题。
嵌入式系统与PC机的USBUART通信设计
嵌入式系统与PC机的USBUART通信设计1 概述RS232(UART)接口是一种简单、方便和实用的通信接口,用途非常广泛。
在许多嵌入式应用,如智能仪器仪表、电子设备中,均使用RS232与PC机等外部系统进行通信,实现上位机对下位机的控制及数据交换等。
在系统调试过程中,通常也是通过RS232,将调试数据发送到PC上显示出来。
但在PC机领域,RS232(COM)串行接口已经从最新一生产的计算机,尤其是笔记本电脑中消失了,而串行接口USB成为了标准的配置。
这种变化给硬件工程师带来了不少麻烦。
目前通常的解决办法是购置一根“USB to RS232”转换电缆,其基本作用是在USB总线上仿真出一个RS232端口。
这种方法的主要优点在于:PC应用程序将该USB口连接当作COM口连接使用,从而可以使工程师轻松跨越复杂的USB低层接口协议,仍使用原来熟悉的,针对COM口操作的方式编写程序代码。
本文将介绍另外一种与上述方法原理类似的设计实现方案,设备之间的外表连接全部换成了USB标准物理接口和连接电缆,但在PC上仍然使用针对COM口操作的方式编写程序代码,保留了原来的风格。
该方案是采用Cypress公司PSoC家族中带USB接口的CY7C64215(或CY8C24x94)芯片实现的。
2 PSoC、PSoC USB和USBUART2.1 PSOC可编程片上系统(Prograromable System on Chip,PSoC),是Cypress公司近几年推出的一种新型的可编程半导体器件芯片。
PSoC由8位微处理器内核,多个可编程的模拟模块和数字模块,硬件乘法累加器,以及I2C、Flash、SRAM等周边外围资源组成。
因此,PSoC除了能实现一般MCU的功能外,还可通过可编程模拟和数字模块,灵活地实现嵌入式系统所需的多种模拟与数字外围功能。
PSoC集三种可编程能力于一体,不仅具有MCU的可编程能力,还包含了部分可编程逻辑运算功能,同时提供了可编程模拟阵列。
嵌入式系统与PC机通迅
存档日期:存档编号:毕业设计报告题目:嵌入式系统和PC机通信学号:姓名:院系:专业、年级、班组:指导教师:毕业设计报告原创性声明嵌入式系统和PC机通信摘要:嵌入式系统和PC机通信,这个技术是广义的。
本次设计主要是完成89C51单片机和PC机之间的异步串口通信。
此项目设计的是实现查询方式串口的收发功能,PC机通过串行口将字符和文本传给89C51单片机, 89C51单片机收到字符和文本后存入自己内部一段连续存贮空间中,并将字符和文本回传给PC机,PC机接收到回传来的字符和文本后将它们显示出来。
在89C51单片机和PC机通信中,要求发送和接收的波特率保持一致。
在本次设计中我运用了波特率自动跟踪的方法,即仅通过软件就可以较简单地实现接收方自动跟踪发送方的波特率。
关键词:嵌入式系统;串口通信;波特率;自动跟踪Embedded systems and PC communication Abstract: Embedded systems and PC communication are a broad meaning. The thesis mainly completes the asynchronous serial communication between single-chip microcomputer 89C51 and PC .The design of this thesis is to achieve the transceiver serial query function. Through the serial port, PC will transmit characters and text to the 89C51 single-chip. After the receipt of characters and text, 89C51 single-chip stores them into the internal continuous memory space and put characters and text back to PC drive. The characters and their text will be displayed after PC drive received them. In the 89C51 single-chip computer and PC-communication, the transmission and reception of baud rate must consistent with each other; I used the automatic tracking method of baud rate, and only thus can the software be relatively simple to receive automatic tracking sender side of the baud rate.Keywords: embedded systems; serial communication; baud rate; automatic tracking目录第1章绪论 (1)1.1串口通信简介 (1)1.1.1串口通信的概念 (1)1.1.2波特率 (1)1.2单片机与PC机串口通信的意义 (1)1.3本文研究内容及研究成果 (2)第2章串行通信基本原理 (3)2.1AT89C51芯片介绍 (3)2.1.1 AT89C51的特征 (3)2.2MAX232芯片介绍 (4)2.3同步通信与异步通信 (4)2.4串行通信标准 (5)2.5串行通信设计步骤 (6)第3章电路设计 (7)3.1串口电路分析 (7)3.1.1单片机AT89C51的整体结构图 (7)3.1.2单片机AT89C51的内部电路图 (7)3.1.3串口通信具体电路原理图 (9)第4章程序设计 (10)4.1通信协议设计 (10)4.2波特率自动跟踪 (10)4.2.1波特率误差源的分析 (10)4.2.2允许的波特率误差 (11)4.2.3波特率自动跟踪的软件设计方法 (11)4.2.4结论 (13)4.3串行通信软件流图 (13)4.4上位机编程 (15)4.5下位机编程 (17)4.6下位机接收程序 (18)第5章编译调试 (19)5.1K EIL C51简介 (19)5.1.1 Keil C51的主要功能 (19)5.2K EIL C51软件的安装 (19)5.2.1 系统要求 (19)5.2.2 软件的安装 (19)5.3K EIL C51的使用 (21)5.3.1 创建Keil C51项目文件及编译调试 (21)5.3.2 对项目的编译连接控制进行设置 (24)5.3.3 片上集成外围功能 (30)5.3.4 在uVision2中生成应用库函数 (33)5.3.5 在uVision2中应用硬件目标板 (34)5.4系统调试过程及体会 (39)5.4.1 程序调试的步骤 (39)5.4.2 程序调试的体会 (40)6 总结与展望 (41)6.1总结 (41)6.2展望 (41)毕业设计体会 (42)致谢 (43)参考文献 (44)英文翻译资料 (45)第1章绪论随着世界科技的不断发展,单片机与PC机的联系越来越紧密。
嵌入式串口通信
题目:PC机与嵌入式开发板串口通信的设计与编程实现摘要随着嵌入式系统的发展和大规模应用,为了提升系统的整体性能,必须实现PC机和嵌入式计算机之间的通信。
在实际开发应用中,串口通信是不可缺少的部分,是目前嵌入式系统与PC机之间一种非常重要而且普遍应用的通信方式。
本文通过基于2410F 的嵌入式串口通信的实现,按照嵌入式系统的软、硬件结构组成,较为详细地介绍了串口通信的硬件电路和软件实现方法。
该系统的硬件主体设计以三星S3C2410 处理器为核心控制器件,通过与计算机串口间的连接,实现在ARM 平台上与外部设备通信的基本功能。
关键词:嵌入式系统;2410F;串口通信;Linux系统ABSTRACTAlong with the development of embedded system and application scale, the communication between the PC and embedded computer must be achieved in order to improve the whole performance of the system. In the actual development application, serial communication is an essential part.And it is a very important and universal mode.In this paper, based on the 2410F the realization of embedded serial communication, according to the embedded system software and hardware structure, a more detailed description of the serial communication hardware and software methods. The principal part of the hardware in this system is chiefly controlled by S3C2410 processor ,which is produced by SAMSUNG Company ,communicated with the serial of computer , this system realizes the based function of visiting exterior device ,which is on the based of ARM.Key words:embedded system; 2410F;serial communication;Linux system目录摘要 (I)ABSTRACT .............................................................................................. I I 1 绪论.. (1)1.1 串口通信概述 (1)1.2 串口通信的原理 (1)1.3 串口通信的开发工具 (2)1.3.1 2410F硬件平台简介 (2)1.3.2 ARM简介 (2)1.3.3 Linux系统简介 (3)1.4 串口通信的基本任务 (4)2 串口通信协议及实现 (4)2.1 RS-232C标准 (5)2.2 系统硬件结构原理 (10)3 串口驱动程序设计 (11)3.1 串口操作需要的头文件 (12)3.2 打开串口 (12)3.3 串口设置 (12)3.4 串口读写 (15)3.5 关闭串口 (16)4 设计验证与测试 (17)5 总结 (20)参考文献 (21)致谢 (22)附录 (24)1 绪论目前,先进的嵌入式计算机以其优良的品质、高可靠性及模块化,广泛地应用于工业控制、航空航天、医疗、智能仪表、通信、数控、自动化生产设备、数据采集等领域。
基于ARM嵌入式系统的USB连机通信的实现
Am1 6 8 、 3 6 8 /8 8 EX、 S 4 0、 P we C、 6 0 0 MI S ARM/ C- 0 o rP 80 、 P 、
成本 、体积 、功耗严格要求 的专用计算机系统。
一
般 来说 ,嵌 入式系统 的架构 可 以分成 4个部分 :处理
电脑 编 程 技 巧 与 维 护
基于 A M 嵌入式系统 的 U B连机通信 的实现 R S
陈浩
( 江苏食 品职业技术学 院,江苏 淮安 2 3 0 ) 2 0 3
摘 要 :目前 U B接 口已经成为计算机外 围设备诸如移动存储设备、数码 产品乃至移动通讯设备 与计算机 互连的首 S
选 标 准接 口。介 绍 了基 于 A M 微 处理 器嵌 入 式 系统 的 与 P R C机 通 过 U B端 口进行 连机 通信 的 实现 方 法 。 S 关 键 词 :嵌 入 式 系统 ’ 用 串行 总线 设 备 ; 机 通 信 9 通 连
统成本 ,同时也利于实现系统安全 。 高实时性 的系统软件 (S O )是嵌入式软件 的基本要求 。而 且软件要求 固态存储 ,以提高速度 ;软件代 码要求 高质量 和
操作 系统平 台下 开发 ,使用 A M S T2 集成开 发环境 ,编 R D . 5
作者简介 :陈浩 ,男 ,研究方 向:计算机应用 。
新显 示 ;在调用 E tr sC n et neU b on c 函数之后系统 已经 进入非 多
2 创建 模板
在实现 通信 之前 ,需要 在 S T中创 建一个 模板 。首 先 , D
使用 A M D . R S T2 5集成 开发环境 ,新 建一个工程 文件在程 序 中设置 断点 ,观察 系统 内存和变量 ,为调 试应用 程序打下 基
嵌入式系统中串口通信帧的同步方法
பைடு நூலகம்
此种方法与逐次比较的帧同步方法相比,能够比较快速、正确地检测出同步包头;但是如果包头的字节数很多,同步过程中每次进入串口中断服务子程序都要进行大量的字节搬移,将必然耗费很长的时间。为了使嵌入式系统更健壮,程序设计应把握的基本原则之一就是使中断处理程序最短。所以基于FIFO队列的帧同步方法也不是最优的。
3 结论
从上面的分析和测试可以看出,基于有限状态机的串口通信帧同步方法是本文中提出的3种帧方法中最优的,结构清晰且系统资源利用率高。
对一个有着完整通信协议的串口中断来说,因为要比较命令头、完成校验、解析数据等需要耗费大量的机器周期,所以嵌入式系统中的串口中断服务程序设计显得更为重要。在实际的串口通信程序中,可采用状态机和消息机制相结合的方法,仅在中断服务程序中设置一个标志,而在主程序中根据相应标志来作处理,这样就回避了某些中断可能需要较长处理时间的问题。在程序结构上,由于采用状态机的结构,既提高了可读性。同时又提高了运行速度,因而该方法不仅是一种很好的帧同步方法,还是一种很不错的串口通信程序设计方法 。
1 串口通信的数据帧结构
现代工业控制,往往需要由多个独立的控制模块来共同完成。它们之间通过串口通信完成复杂的控制过程,必须在通信过程中加入必要的通信协议,以提高系统的可靠性和稳定性;而要完成特定的通信协议,就得有一定的同步机制。下面介绍一下简化的串口通信数据帧结构,以便分析说明嵌入式系统串口通信过程中的帧同步方法。
假定串口发送的数据帧结构为:
其中:包头用于同步,一般是一个或多个ASCII字符,本文中假定数据帧同步头有2字节(0xAA、0x55);包长表示数据包中除去包头和包长的字节数,一般用约定好的几个字节表示;类型为通信协议里规定的命令类型;数据为应发送的主要信息;校验通常采用单字节"异或"的方法。
PC 与ARM 嵌入式系统间串口通信功能的实现
1
引言
在当前嵌入式系统设计中,以 ARM 为内核的处理器芯片已经成为了开发的主流。为了 降低开发成本和开发难度,常选择不加载操作系统。本文选择 IAR ( IAR Embedded Workbench)开发平台,在不加载操作系统的前提下,使用 C 语言对以 ATMEL 公司的 AT91M40800 芯片(ARM7TDMI 内核)为主芯片的嵌入式系统进行软件开发,获得了成功, 此文重点介绍其中的串口通信模块设计方案和具体实现。
3
4
开发体会
笔者在使用 IAR 开发 ARM 串口通信模块时有以下几点开发体会: 第一,对于嵌入式系统,特别是没有内存管理模块(MMU)的 ARM7TDMI 内核系统, 不要轻易申请类似 int buffer[2048] 这样的空间,开销太大,一下子申请这么大的栈可能造 成系统崩溃。 第二,如果使用了 malloc 这样虽然 IAR 已经提供了的函数,一定要在使用完毕后使用 free 函数释放空间,否则可能引起内存泄漏,系统崩溃。 第三,如果在一些经常调用且需要快速处理的模块,考虑使用汇编完成。 第四,在 IAR 使用 release 方式编译完毕后,会在此工程目录下生成 release 目录,此目 录下的 exe 目录即生成目标文件,而 list 目录下的*.map 文件包含了按照内存配置文件编译 后目标文件的具体内存使用情况,可以参照里面的信息判断是否存在内存使用问题。 参考文献:
2
系统框图简介
、[2]
AT91M40800 芯片带有 USART 接口,芯片具体资料请查阅参考资料[1] USART 接口与 MAX232 芯片实现串口功能,系统框图如下图 1 所示。
,在此使用
图 1 系统框图 1
3
串口通信模块程序设计
用VC++6.0实现PC机与嵌入式系统的串口通信
I lme t t n o e iIP r mpe na i f S r o t o a Co mmu ia in Be we n a Co nc t t e mp t r o ue a d t e Emb d e Sy t m Us n n h e d d se ig
Co o e t a d mp n ns n Co t i nr s o Ga r Ney对 话 框 的 Reitrd gsee
在嵌入式系统中,经常会遇 到通 讯问题。串 口 讯是一种实用 通 的通讯方式 。嵌入式系统与上位机 的通 讯通常是通过 串口进 行的。 P I S公司的 L C 2 0 HL P 2 0 是基于一个支持实时仿真和跟踪的 3 位 2 A M7 D — P 的嵌 入 式 R S 。 有 两 个 异 步 串 行 接 口 R r MI C U r S IC 具 ( UART ' oUART1 和 RS 3 ) 2 2电平转 换电路 ,可与上位 机进行 通 信。 在 Wi o s n w 环境下开发与下位机的通讯系统。经常使用基于 d VC+ +的 Wid ws 台开 发。 VC+ no 平 +是微软公司推 出的一个 面向 对象的、功能丰富的可视化 重量级 的开发工具 。它虽然复杂,但 功 能非常强大。它在图形处理和 数据库管理等方 面都有较大 的优势 。 因此 ,我们利用 V + 6 提供 的通 讯控件 MS o C +. 0 C mm, MF 以 C来 设计界面编制程序,实现 与 L C 2 0的通 讯系UN - a . EN n d ng Sih i W Ya g- o ’
( c o lo e ti n i e rn n tm ain S h o fElcrc E gn e ig a d Au o to ,
Hee ie s y o c n lg ,Hee 30 9 fiUnv ri fTe h oo y t fi2 O o )
PC机与嵌入式系统的多线程串行通信实现
PC机与嵌入式系统的多线程串行通信实现摘要叙述了PC 机与嵌入式计算机系统的多线程串行通信的实现。
介绍了多线程设计思想的必要性,给出了程序设计流程。
关键词多线程;串行通信1、引言目前,先进的嵌入式计算机以其优良的品质、高可靠性及模块化,广泛地应用于工业控制、航空航天、医疗、智能仪表、通信、数控、自动化生产设备、数据采集等领域。
在实际应用中,有时需要借助微机强大的数据处理能力和丰富的软件资源,使得组成的系统功能更为强大。
这样,为了提升系统的整体性能,必须实现PC 机和嵌入式计算机之间的通信。
在导航仪生产管理中,由于串行通信具有连接简单、使用灵活方便、数据传递可靠等优点,采用串行通信方式进行数据下载。
但由于Windows 95/98 对系统底层操作采取了屏蔽的策略,不允许用户对硬件I/O 口进行直接操作,进行串行通信只能通过调用API 函数来完成;同时Windows 9x 通过消息队列驱动管理程序,DOS 中断服务例程在其下面也很难实现,且实时性和可靠性都得不到保证;因此通过多线程编程解决这一问题,且能提高数据传输的吞吐量和应用程序的可靠性。
2、系统功能简介及基本结构本文以导航仪生产管理系统为背景进行论述。
现场的嵌入式计算机给PC 机上传所存储的信息,并从PC 机上下载最新的版本信息。
而嵌入式计算机发送回来的数据可以通过PC 机的人机界面生动实时地向用户显示。
系统基本结构如3、多线程串行通信实现流程3.1 用API 函数实现串行通信的基本流程如串行通信结束时调用函数CloseHandle()来关闭CreateFile()函数返回的串口句柄。
PC机与嵌入式计算机系统串行通讯的硬软件实现
PC机与嵌入式计算机系统串行通讯的硬软件实现【摘要】介绍了微机(PC)与嵌入式计算机系统的串行通讯的方法,叙述了嵌入式计算机在温控系统中的应用和硬件结构,给出了Windows98下的串行通讯程序。
关键词:微机(PC),嵌入式计算机,串行通讯1引言目前,先进的嵌入式计算机以其优良的品质、高可靠性及模块化,广泛地应用于工业控制、航空航天、医疗、智能仪表、通讯、数控、自动化生产设备、数据采集等领域。
在实际应用中,有时需要借助微机的强大的数据处理能力和丰富的软件资源,使得组成的系统功能更为强大。
这样,为了提升系统的整体性能,必须实现PC机和嵌入式计算机之间的通讯。
它们之间的通讯可以通过并行通讯或串行通讯两种方式来实现。
由于串行通讯相对于并行通讯有接线数量少,抗干扰性能好等优点,所以,这里采用串行通讯的方式。
2嵌入式计算机的硬件和通讯软件的设计2.1系统的功能简介本文以温控系统为背景作介绍。
现场的嵌入式计算机的模拟量采集模块和数字量采集模块采集温度湿度、以及执行机构的开关量状态,经自身的MCU(微控器)进行简单的处理后,经串行通讯的方式,将这些数据上传至微机,微机则先将模拟量资料存入数据库中(为了中长期地跟踪温控系统的控制效果,便于以后的分析),再通过控制算法来计算输出控制量,并通过通讯下传到嵌入式计算机中,然后再由其控制量输出至相应的执行机构进行控制。
整个系统这样设计的优点在于:通过微机上的图形控制接口,生动实时地向用户显示控制对象的情况;友好的用户接口使得用户可以在微机上直接手动输出来控制被控对象;同时又发挥了嵌入式计算机系统的稳定性、可靠性和高度灵活性等特点。
2.2嵌入式计算机的硬件结构嵌入式计算机系统由以下几部分组成:模拟量采集部分,数字量采集部分及输出部分,通讯部分和微控器的综合控制部分。
模拟量采集部分最少可以采集32路的模拟量,并可以通过硬件的跳线设置最多采集64路的模拟量。
通过模拟开关的切换,可以将模拟量信号经过A/D芯片转化为数字量信号,再做进一步的处理。
汇编语言实现串口通信(PC和单片机间)
8.用C语言或汇编语言实现串口通信(PC和单片机间)上位机和下位机的主从工作方式为工业控制及自动控制系统所采用。
由于PC 机分析能力强、处理速度更快及单片机使用灵活方便等特点,所以一般都将PC 机作为上位机,单片机作为下位机,二者通过RS-232或者RS-485接收、发送数据和传送指令。
单片机可单独处理数据和控制任务,同时也将数据传送给PC机,由PC机对这些数据进行处理或显示1 硬件电路的设计MCS-51单片机有一个全双工的串行通讯口UART,利用其RXD和TXD与外界进行通信,其内部有2个物理上完全独立的接收、发送缓冲器SBUF,可同时发送和接收数据。
所以单片机和PC机之间可以方便地进行串口通讯。
单片机串口有3条引线:TXD(发送数据),RXD(接收数据)和GND(信号地)。
因此在通信距离较短时可采用零MODEM方式,简单三连线结构。
IBM-PC机有两个标准的RS-232串行口,其电平采用的是EIA电平,而MCS-51单片机的串行通信是由TXD(发送数据)和RXD(接收数据)来进行全双工通信的,它们的电平是TTL电平;为了PC机与MCS-51机之间能可靠地进行串行通信,需要用电平转换芯片,可以采用MAXIM公司生产的专用芯片MAX232进行转换。
电路如图1所示。
硬件连接时,可从MAX232中的2路发送器和接收器中任选一路,只要注意发送与接收的引脚对应关系即可。
接口电路如图3.5所示。
总体设计按照整体设计思路方案绘制原理图如下所示:2 系统软件设计软件设计分上位机软件设计和下位机软件设计。
这两部分虽然在不同的机器上编写和运行,但它们要做的工作是对应的:一个发送,另一个接收。
为了保证数据通信的可靠性,要制定通信协议,然后各自根据协议分别编制程序。
现约定通信协议如下:PC机和单片机都可以发送和接收。
上位机和下位机均采用查询方式发送控字符和数据、中断方式接收控制字符和数据。
采用RS-232串口异步通信,1上位PC机与下位单片机异步串行通信的通信协议2 单片机通信程序设计单片机的数据通信由串行口完成,定时器T1 作为波特率发生器,其波特率要与PC 机一致。
ARM与PC机通过串口通信
4
结束语
在测试串口程序的时候总是出现乱码,起初怀疑是波特率问题,但是改了很多次都不见效,最后怀疑是
40 广东海洋大学电子信息学刊 Vol.1, No.1, July 2009 周立功本身程序的问题,经过一番改动,下载到板上还是出现乱码,重复实验了几次,发现是 keil 编译器的 问题,最后改用 ads 编译,收发数据终于正常。在这次实验过程中,还学会了用 Viusal Studio 2008 这个软件, 此软件功能强大,不仅能够编写 c# 窗口程序还可以编写 WEB 程序以及控件程序。本实验是基于 ARM 与 PC 机串口通信,对于 ARM 与 PC 机网络通信奠定基础。 附中文参考文献 :
2
2.1
UART 模块
UART结构介绍[3] UART 接收器模块 UxRx 监视串行输入线 RxD 的有效输
入。UART Rx 移位寄存器 U0RSR 通过 RxD 接收有效字符。当 U0RSR 接收到一个有效字符时,它将该字符传送到 UART Rx 缓冲寄存器 FIFO 中, 等待 CPU 或主机通过主机接口进行访问。 UART 发送器模块 UxTx 接受 CPU 或主机写入的并将数据 缓存到 UART Tx 保持寄存器 UxTHR。UART Tx 移位寄存器 UxTSR 读取 THR 中的数据并将数据通过串行输出引脚 TxD 发 送。 UART 波特率发生器模块 UxBRG 产生 UART Tx 模块所使 用的定时。 UxBRG 模块时钟源是 pclk。主时钟与 UxDLL 和 UxDLM 寄存器所定义的除数相除得到 Tx 模块使用的时钟。 该 时钟为 16 倍过采样时钟 NBAUDOUT。 中断接口包含寄存器 UxIER 和 UxIIR。中断接口接收几个 由 UxTx 和 UxRx 发出的单时钟宽度的使能信号。 UxTx 和 UxRx 的状态信息保存在 UxLSR 中。 UxTx 和 UxRx 的控制信息保存在 UxLCR 中。 2.2 UART程序设计 ARM 板上的程序主要任务是接收 PC 机的命令控制 LED 灯按照三种模式闪烁。 UART 程序采用查询方 式,部分源代码如下: 图 2 UART 方框图
用VC++6.0实现PC机与嵌入式系统的串口通信
用VC++6.0实现PC机与嵌入式系统的串口通信
孙似海;温阳东
【期刊名称】《仪器仪表用户》
【年(卷),期】2007(014)006
【摘要】介绍基于VC++6.0的上位机和基于LPC2200的嵌入式串口通讯系统,给出系统的通讯原理及软件和硬件的实现方法.并列举了通过下位机向PC机的串口输出一个字符串的应用,以此表明此通讯系统的可靠性和稳定性.
【总页数】2页(P103-104)
【作者】孙似海;温阳东
【作者单位】合肥工业大学,电气工程与自动化学院,安徽合肥,230009;合肥工业大学,电气工程与自动化学院,安徽合肥,230009
【正文语种】中文
【中图分类】TP312;TP368
【相关文献】
1.利用VC++6.0实现测量仪器中的串口通信 [J], 段琳琳;党力明;任琪
2.用VC++6.0编程实现航海导航的多串口通信 [J], 李宣敏
3.基于VC++6.0的PC机与PLC串口通信的实现及其应用 [J], 李子彬;赵志诚;张井岗
4.在VC++6.0环境下实现汽车点火线圈测试台的串口通信 [J], 宋仲康; 单联海
5.基于LabVIEW下PC机与PC机虚拟串口通信的设计与实现 [J], 潘锋
因版权原因,仅展示原文概要,查看原文内容请购买。
PC与ARM嵌入式系统间串口通信功能的实现
PC与ARM嵌入式系统间串口通信功能的实现
陈竞;刘玉;熊祖彪
【期刊名称】《微计算机信息》
【年(卷),期】2005(021)023
【摘要】在工业控制场合,常会要求嵌入式微机系统实现串口通信的功能,介绍IAR 软件平台和简易JTAG进行ARM内核的嵌入式系统开发.我们用ATMEL公司
AT91M40800搭建一个嵌入式微机系统,圆满实现了没有操作系统支持的串口通信功能,文中详细介绍了具体实现方法.
【总页数】3页(P56-57,113)
【作者】陈竞;刘玉;熊祖彪
【作者单位】430074,武汉华中科技大学电子与信息工程系;430074,武汉华中科技大学电子与信息工程系;430074,武汉华中科技大学电子与信息工程系
【正文语种】中文
【中图分类】TP273+.5
【相关文献】
1.PC机间蓝牙串口通信的HCI实现 [J], 孙吉福;朱绣鑫
2.高速数据采集中TMS320C6000 DSP与PC机间串口通信的实现 [J], 路艳梅;赵学荟;陈鸿
3.PC与ARM嵌入式系统间串口通信功能的实现 [J], 陈竞;刘玉;熊祖彪
4.GPS接收机与PC机间串口通信的实现 [J], 公丕波;郝金明;朱伟刚
5.DSP与PC间高速串口通信的实现 [J], 冷艾亭
因版权原因,仅展示原文概要,查看原文内容请购买。
PC机与arm通讯
Pc机与arm通讯板实现通讯的细节描述1:明确通讯时,两者之间需要传输的数据2:在传输数据时,应考虑传输过程中是否有命令的传输。
3:传输时所利用的底层传输接口使用101或者104等协议,(暂不考虑底层的实现)分析:现对于传输过程中在上位机中建立的数据主要包括实设备和逻辑设备两种设备,当然根据要求可以另外扩展。
实设备:实设备是一类设备的总体描述,首先包含了设备的基本属性的描述,软硬件版本可以描述出来,以便后期维护与升级,在实设备中有一个数据段,主要包括了我们对实设备的配置,这个配置可以通过外界写入也可以通过程序自动生产然后让上位机读取,最后显示在PC机上的软件上面。
设备的基本属性数据区域实设备实设备的软硬件版本对于实设备结构的处理,设备的基本属性和软硬件版本,可以直接发送,数据区域需要另外考虑。
另外这个数据结构在系统中的组织形式如下:1:实设备的个数。
2:实设备在存储的位置,已经保存在flash中的位置。
3:发送实设备的数据给PC机时,第一步从flash中读取最新版本的实设备库,如果读出的实设备库比现在使用的实设备库版本低,则使用最新版本的设备库。
4:接受PC机传输过来的实设备的配置,配置当前的实设备库,并设置为最新的实设备库. 5:对于设备可以接受外部的更新,不管是PC机还是其他介质逻辑设备:通过软件中的描述可以知道逻辑设备中包含所有的实设备的映射,当打开不同的实设备时,也会显示该设备下遥信,遥控等数据的集合。
在逻辑设备中的数据段,显示了所有实设备所对应的遥信,遥调,遥控等数据的映射,这些可以通过PC机传给arm通讯板,也可以通过arm通讯板传输哥PC机。
流程图:。
嵌入式系统与PC机的USBUART通信设计
嵌入式系统与PC机的USBUART通信设计这段容易的C代码功能首先启动LED和USBUART用户模块工作,开放CPU的中断允许,然后等待USB初始化。
USB接口初始化胜利(与PC衔接胜利)后,程序开头循环查询和接收PC下发的数据,然后将收到的数据再回送给PC,同时控制LED的闪耀,从而实现容易的、可作为USBUART 设备性能测试的Echo功能。
最后编译囫囵系统程序,生成HEX文件,通过 ISSP下载烧录到CY7C64215中。
囫囵软件系统设计过程便告完成。
3.3 USBUART的衔接与测试用法 1根一般的USB延伸衔接线,将CY7C64215的USB口衔接到PC机的USB口上,PC显示发觉新的USB设备,并提醒安装驱动。
USBUART 设备的驱动程序是PSoC Designer自动生成的,保存在工程文件名目的L1B子名目下,文件名为USBUART_XP_Vista.inf(或US—BUART.inf)。
用户只要根据提醒的要求,挑选这个USB设备文件就可以安装USBUART 的驱动了。
打开PC机的硬件配置,会发觉PC的硬件设备中多了1个COM口。
接下来的测试是在PC机上打开串口调试工具(如超级终端),衔接到该COM口,然后手动发送1个随意字符。
CY7C64215控制的LED则开头闪耀,在超级终端上也同时收到由USBUART回送的该字符。
更进一步的测试是,将超级终端的波特率设置成115 200 bps,每隔1 ms自动发送1个字符。
此时CY7C64215控制的LED全亮(因为闪耀间隔时光太短),超级终端也会延续收到字符。
通过对照在超级终端中发送和接收到的字符个数是否相同,可以验证是否走失数据。
4 总结RS232是单个设备接入计算机时最常采纳的一种方式,因为其通信规程协议比较容易,无数传统的仪器设备和嵌入式系统都采纳了这种通信方式。
将USB转UART技术应用于嵌入式系统与.PC机之间的数据通信,在计算机上产生1个虚拟的COM口,用户只需像用法通用串行第1页共2页。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
P22/R X D 1 R 2O U T R 2IN GND VEE
P24/B M S 78 P24/B M S 79 P25/M C K O
P25/M C K O
M A X 232
P26/N C S2 80 P26/N C S2
A T91M 40800 R S232接口
图 1 系统框图
C 41 1uf
+5V C 54
1ut TX D SA TX D SB R X D SA
R X D SB
C 42 1uf +
陈竞:硕士生
中国自控网:http://www.a utocontrol.com.cn
- 56 - 120 元 / 年 邮局订阅号:82-946
3 串口通信模块程序设计
我们在 ARM 嵌入式系统串口通信模块的开发过
3 仿真结果
社,2003 [2]Bhasker J. Verilog HDL Synthesis A Practical primer[M]. London, UK: Star Galaxy; 1998. [3]Liakot Ali,Roslina Sidek,Ishak Aris,Alauddin Mohd. Ali,Bambang Sunaryo Suparjo.Design of a micro - UART for SoC application [J].In: Computers and Electrical Engineering 30 (2004) 257–268.
}
PacketSendStruct recpackage; PacketBackStruct Backpackage;
4 开发体会
按上位机和下位机约定的波特率打开选定串口
笔者在使用 IAR 开发 ARM 串口通信模块时有以
后,采用下位机等待接收,上位机主动发包的方式,代 下几点开发体会:
码如下:
第一,对于嵌入式系统,特别是没有内存管理模
核 的 嵌 入 式 系 统 开 发 。 我 们 用 ATMEL 公 司 AT91M40800 搭
建一个嵌入式微机系统,圆满实现了没有操作系统支持的
串 口 通 信 功 能 ,文 中 详 细 介 绍 了 具 体 实 现 方 法 。
关 键 词 :嵌 入 式 系 统 ,AR M ,串 口 通 信
中 图 分 类 号 :T P 273+.5
unsigned *pSend = (unsigned *) &recpackage;
块(MMU)的 ARM7TDMI 内核系统,不要轻易申请类
...........
似 int buffer[2048] 这样的空间,开销太大,一下子申请
while(1)
这么大的栈可能造成系统崩溃。
{
第二,如果使用了 malloc 这样虽然 IAR 已经提供
COM_PDC_Recv (Com, &recpackage, sizeof(rec- 了的函数,一定要在使用完毕后使用 free 函数释放空
package));
间,否则可能引起内存泄漏,系统崩溃。
while(! COM_CheckENDRX(Com))
第三,如果在一些经常调用且需要快速处理的模
{
块,考虑使用汇编完成。
文 献 标 识 码 :A
文章编号:1008- 0570(2005)8- 2- 0056- 02
Abstr act: Embedded system often needs serial port communica-
tion in industry controlling condition. This paper will show how
技 to use the IAR ARM C- SPY Macraigor JTAG driver and how to
communicate with PC without operating system supporting.
术 Key wor ds: embedded system; ARM; ser ial por t communica- tion
{
return;
unsigned short MSGID;
//应 答 包 标 号 ,
continue;
一般等于最近接收正确包标号
}
unsigned short BackData;
//应答控制命令
//将所得信息按照要求进行处理
unsigned Verify;
//校验位
..........
} PacketBackStruct;
电 话 :010-62132436 ,62192616(T/F ) 《 变频器与软启动器应用 200 例》
AR M应 用
您的论文得到相关企业家品评
发送 COM_PDC_Send()、PDC 模式接收 COM_PDC_
for (i = 0; i < sizeof (PacketSendStruct)/sizeof(un-
创
新
1 引言
在当前嵌入式系统设计中,以 ARM 为内核的处
理器芯片已经成为了开发的主流。为了降低开发成本
和开发难度,常选择不加载操作系统。本文选择 IAR
(IAR Embedded Workbench)开发平台,在不加载操作
系 统 的 前 提 下 , 使 用 C 语 言 对 以 ATMEL 公 司 的
} else //校验失败继续
术
char Data[MAX_SIZE_PAGE]; //数据包所带内容 {
创
unsigned Verify; //校验位
VerifyData = 0;
} PacketSendStruct; //上位机发送包结构
TimeFlage++;
新
typedef struct
if(TimeFlage>=RetryTime)
{
(Backpackage));
unsigned short MSGID; //发送包标号 unsigned short CMD; //控制命令标识此包的内容
.............. }
技
unsigned short DataStart; //数据包起始 unsigned short DataLength; //数据包长度
电 话 :010-62132436 ,62192616(T/F ) 《 现场总线技术应用 200 例》
中国自控网:http://www.a utocontrol.cn
邮局订阅号:82-946 120 元 / 年 - 57 -
P LD/CP LD/FP GA设计应用
您的论文得到相关企业家品评
控制信号复杂,设计难度大,调试不方便,所以在大规 模数字电路设计中显得很不适用。而利用状态机实现 正好段。
是否 E SC 否
有 有键按下? 无否
接收完一帧?
处理帧数据
发送应答数据包 下位机
写入要发送的 命令入数据
发送数据包
接收数据包
否
否
正确接收包
是否超时
是 返回成功
是 返回失败
上位机
图 2 软件流程
在我们选用的 AT91M40800 芯片本身带有双 US- ART 接口,配合串行接口芯片 MAX232 共同实现串口 功能。要完成串口通信必先编写的驱动函数如:打开 串口 COM_Ope( n )、关闭串口 COM_Clos(e )、PDC 模式
(华中科技大学)陈 竞 刘 玉 熊 祖 彪
Chen ,J ing Liu ,Yu Xiong ,Zubiao
摘 要 :在 工 业 控 制 场 合 ,常 会 要 求 嵌 入 式 微 机 系 统 实 现 串 口
通 信 的 功 能 , 介 绍 IAR 软 件 平 台 和 简 易 JTAG 进 行 ARM 内
因为下位机 ARM 运行速度大大低于上位机 PC,
//根据控制命令进行控制
所以这里串口通信采用了上位机主动发包,下位机等
if((Check == CMDDOWNFINISH) ||
待的方式。下位机和上位机软件流程图如图 2 所示:
((recpackage.CMD&CMDDOWNFINISH) ==
在这里为了达到通信要求我们自定义了通信数 CMDDOWNFINISH))
定接收或发送缓存大小后不需要再占用 ARM 内核,
{
自动接收或发送数据的控制方式。驱动函数编写相对
//如果上次包发送成功但握手失败的情况下
简单,在此就不具体说明,如果需要了解请查询请参
if(Backpackage.MSGID ! = recpackage.MSGID)
考文献。
Check = CMDCheck(&recpackage);
#ifdef USE_WD
第四,在 IAR 使用 release 方式编译完毕后,会在
WD_Reset();
此工程目录下生成 release 目录,此目录下的 exe 目录
#endif
即生成目标文件,而 list 目录下的 *.map 文件包含了
}
按照内存配置文件编译后目标文件的具体内存使用
情况,可以参照里面的信息判断是否存在(见 113 页)
程中,采用了 IAR(IAR Embedded Workbench)开发平
台。使用 IAR 集成交叉开发环境 C 语言设计开发与
PC 上的 C 语言程序设计开发有许多不同之处。虽然
IAR 提供了大部分的标准 C 语言函数库(包括 stdio、
string、math、stdlib 等),但由于没有操作系统支持,系
AT91M40800 芯片(ARM7TDMI 内核)为主芯片的嵌入
式系统进行软件开发,获得了成功,此文重点介绍其
中的串口通信模块设计方案和具体实现。