PC串口范文

2024-07-05

PC串口范文(精选7篇)

PC串口 第1篇

1.1 数据通信的基本概念

在实际应用中, 计算机的CPU与外部设备之间经常要进行信息交换;一台计算机与其他计算机之间也往往要交换信息, 这些信息交换都可称为通信。通信的方式有串行和并行两种。

串行通信是指数据一份一位按顺序传送的通信方式。其突出特点是只需少数几条线就可以在系统间交换信息, 大大降低了传送成本.尤其适用于远距离通信。但华行通信的速度比较低。

并行通信是指数据的各位同时进行传送的通信方式。其优点是数据的传送速度快, 缺点是传输线多, 数据有多少位, 就需要多少传输线。一般适用于高速短距离的应用场合, 典型的应用是计算机和打印机之间的连接。

1.2 串行通信的传送方向

串行通信的传送方向有单工、半双工和全双工三种。单工方式下只允许数据向一个方向传送, 要么只能发送, 要么只能接收;半双工方式下允许数据在一条传输线上往两个相反的方向传送, 但不能同时传送, 只能交替进行。为了避免双方同时发送, 需另加联络线或制定软件协议:全双工是指数据可以同时往两个相反的方向传送, 需要两个独立的数据线分别传送两个相反方向的数据。

1.3 串行通信的同步方式

串行通信中必须规定一种双方都认可的同步方式, 以便接收端完成正确的接收。串行通信有异步和同步两种基本方式。

1.3.1 异步通信:

在异步通信中, 数据按帧传送, 用一位起始位 (“0”电平) 表示一个字符的开始, 接着是5-8个数据位。低位在前, 高位在后, 用停止位 (“1”电平) 表示字符的结束, 在信息位和停止位之间可以插入一位奇偶校验位, 这样构成—个数据帧, 这时可用这一位来确定这一帧中字符所代表的信息的性质 (地址/数据等) 。异步通信适用于低速通信的场合。通信的双方若时钟略有误差, 两个信息字符之间的停止间隔将为这种误差提供缓冲余地, 因此异步通信方式允许有较小的频率偏移, 这是它的优点。

1.3.2 波特率:

波特率是指数据, 则每个字符格式包含10位, 这时传送的波特率为:的传输速率。表示每秒钟传送的二进制代码的位致, 单位是b/s。波特率是衡量传送通道频宽的指标, 它和传送有效数据的速率并不一致。它的传送速率一般在50~19200之间。

1.4 串行通信规程

数据通信规程是通信双方为了有效地交换信息而建立起来的一些约定, 在规程中对数据的编码同步方式、传输速度、传输控制步骤、校验方式、报文方式等问题给予统一的规定, 通信规程也称为通信协议。

2 串行接口

M CS-51片内有一个可编程的全双工串行口, 可作UART用.也可作同步移位寄存器用。发送数据由TXN (P3.1) 端送出, 接收数据由RXD (P3.0) 端输入, 串行n有两个物理上独立的缓冲器SHUF, 一个为发送缓冲器, 另一个为接收缓冲器、二者共用一个SFR地址99H。发送缓冲器只能写入, 不能读出, 接收缓冲器只能读出, 不能写入, 能设置备种波特率, 给实际使用带来很大的灵活性。

2.1 串行口的专用寄存器

8051的串行口是可编程接口, 对它的初始化编程只需把两个控制字分别写入特殊功能寄存器SRON (98H) 和电源控制寄存器PCON (87H) 中即可。

串行口控制寄存器SCON, 8051串行通信的方式选据、接收和发送控制以及串行口的状态标志等均由特殊功能寄存器SCON控制和指示。串行发送中断标志们和接收中断标志RI共用一个中断源, CPU并不知道是TI还是RI产生的中断请求, 所以在全双工通信时, 必须由软件来判别.复位后SCON的所有位都清0。

2.2 串行口的工作方式

在控制寄存器中, SM0和SM1位决定串行口的工作;SM2位决定串口应用于多处理机的通信方式。

2.2.1 方式0

当SM0=0, SM1=0时串口选择方式0这种工作方式实质上是一种同步移位寄存器方式.其数据传输的波特率固定为 (1/12) .fosc.数据由RXD (P3.0) 因脚输入或输出, 同步异位时钟由TXD (P3.0) 引脚输出.接收/发送的是8为数据, 传送时低位在前。

2.2.2 方式1

当SM0=0、SMl=1时, 串行口选择方式1。其数据传输波特率由定时器/计数器T1和T2的溢出决定, 可用程序设定。由TXD (P3.1) 引脚发送数据, 由RXD (P3.0) 引脚接收数据。发送或接收一帧信息为10位:1位起始位 (Q) 、8位数据位和1位停止位 (1) 。

2.2.3 方式2和3

当SM0=1、SM1=0时, 串行口选择方式2;当SM0=l、SMl=时, 串行口选择方式3。由TXD (P3.1) 引脚发送数据, 由RXD (P3.0) 引脚接收数据。发送或接收一帧信息为11位:1位起始位 (0) 、9位数据位和1位停止位 (1) 。

3 RS-232串行接口标准

目前RS-232是PC机与通信工业中应用最广泛的一种串行接口。RS-232被定义为一种在低速率串行通讯中增加通讯距离的单端标准。RS-232采取不平衡传输方式, 即所谓单端通讯。由于其发送电平与接收电平的差仅为2V至3V左右, 所以其共模抑制能力差, 再加上双绞线上的分布电容, 其传送距离最大为约15米, 最高速率为20kb/s。RS-232是为点对点通讯而设计的, 其驱动器负载为3~7kΩ。所以RS-232适合本地设备之间的通信。

RS-232C接口是以实现数据设备之间 (包括数据终端设备DTE如计算机, 终端, 其他设备等和数据通信设备DCT如调制解调器等) 进行串行数据通信的标准接口, 是一个有25个引脚的连接器, 它的每一个引脚的定义及各种信号电平的标准的, 因而确保了不同制造商生产的数据设备之间进行通信的兼容。

最后, 在大型直流电机调速过程中, 通信模块有可能受到外界较大的干扰。为了保证通信的可靠性, 制订如下的通信协议:

(1) PC机和单片机都可以发送和接收数据。

(2) PC机和单片机的波特率都选定为9600bit/s。

(3) 通信帧格式是:1个起始位, 8个数据位, 1位可编程位 (用以确定发送和接收的是数据还是地址) , 1位停止位。

(4) 发送和接收一个数据包都要进行累加和检验, 每个字节的发送与接收要进行偶检验。

(5) 采用中断通信方式。

(6) 为了保证数据的可靠、有效, PC机主动联系单片机, 单片机收到PC机发送的地址后再将本机地址发送给上位PC机, 在上位机端若检查收到的地址码和开始发送出去的地址码相同, 则认定双方握手成功, 开始进行数据通信。

摘要:单片机以其体积小、价格低、抗干扰性好等特点, 在现代控制系统中常用在操作现场进行数据采集, 以及实现现场控制中.但是由于其数据存储容量和数据处理能力都较低, 所以一般情况下要通过通信手段使它与PC机相连, 把所采到的数据传送到PC机上, 再在PC机上进行数据处理, 充分发挥两者各自的优势.由于单片机输入、输出电平是TTL电平, 而PC机配置的是RS-232标准串行接口, 两者的串行规范不一致, 因此需要完成单片机与PC机的串口通信原理的方案。

关键词:单片机,通信,串行通信,数据通信

参考文献

[1]何利民.单片机应用系统设计[M].北京航空航天大学出版社.1998.

PC串口 第2篇

1 串口通信的基本原理

就宏观层面来看, 串行端口在实际应用过程中能够有效的实现CPU与串行设备之间的编码转换, 促进通信效率的提升。在实际运行过程中, 在数据发出过程中, 经过串行端口的作用下, 字节数据能够自主转换为串行的位;在数据的接收过程中, 串行的位又能够转化为字节数据, 具有良好的适应性。PC系列为了更好的实现串行通讯, 采取通用异步接收发送器的配置, 来提高串口通信的质量和效果。通用异步接收发送器属于一种大规模的集成通讯组件, 能够与内部寄存器协调作用来实现通讯功能的有效发挥。

2 PC104串口通信在电气控制中的实际应用

2.1 实现远程控制。

就电气控制行业的实际运行情况来看, PC104串口通信能够在保证通信质量的基础上, 简化外部安装设备, 省去了键盘、显示器以及软驱等设备, 在应用程序和数据文件需要更新和交换时, 只需要将嵌入式PC拆下, 并将外挂键盘、显示器以及软驱来对文件进行管理, 实际应用过程中具有高度的便捷性。那么在实际应用过程中, 相关工作人员应当注意对嵌入式PC上的串口、并口以及USB等通讯接口进行检查, 在确保其性能有效后, 采用客户机和仿真终端等来对嵌入式PC装置的文件进行更新, 并且是提高文件的管理效果。

在光电计时仪的设计中可以对串口进行合理化利用, 来实现远程连接和调试功能, 通过PC104的合理化设置, 切实提高了光电计时仪的应用效果。PC104接有矩阵键盘和显示屏, 在通常状态下, PC104能够单独进行工作控制, 在有需要的情况下, 用户需要对模拟电子硬盘上的用户程序进行改写时, 可以通过PC104串口来实现, 从而为PC104串口通信的实际应用价值的有效发挥奠定了坚实的基础。

2.2 实现文件的传送。

以光电计时仪为例, 在其实际运行过程中, 测量完成后需要将测量结果及时上传至上位机, 以促进实施数据处理和判断工作的顺利进行。若实际测量文件较小且传输距离较短的情况下, 可以采用串口通信的方式, 促进电气控制整体工作效率的提升。

在电气控制的过程中, 可以将主控室的计算机作为上位机, 来进行文件的接收工作, 将系统PC104计算机作为下位机, 来实现文件的发送工作没通过双向的通信方式, 来切实提高PC104串口通信的质量, 促进电气控制工作的稳定有序进行。在PC104串口通信在电气控制的实际应用过程中, 应当对其文件发送的软件程序进行合理化设置, 通过C语言的有效应用, 对PC104运行环境进行有效的处理, 确保其具有高度的可读性和准确性, 以促进电气控制工作更具科学性和可靠性。在电气控制中, 为了更好的满足系统内部大容量数据传输的实际需求, 并切实提高系统的灵活性, 在电气控制实际工作中, 应当对上位机 (PC机) 在实际接收过程中的软件程序进行合理化规范, 以促进电气控制工作的顺利开展。

就电气控制的实际情况来看, 32位的windows系统内部, 串口以及其他类型的通信设备主要应用于文件的处理。就PC104串口通信的实际情况来看, 其中串口的打开、关闭、读取和写入等都具有一定的特殊性, 其所用函数与操作文件的函数保持高度一致。硬件串口连接情况见图1。

2.3 测量直流电机的调节特性曲线。

为验证该直流伺服电机控制系统硬件平台的可行性, 编写测量直流电机调节特性曲线的软件。该软件主要由主程序、中断处理子程序和绘图子程序组成。PC-104控制器的中断信号由计数器0定时时间到之后的输出信号OUTO触发。中断处理程序中将读取在计数器0进行50ms定时时间内计数器1, 2的计数值。计数值即为电机旋转时, 光电编码器产生的脉冲数, 该值用于电机转速的计算。在中断服务程序中完成的另一个工作为置位中断标志, 该标志用于主程序判断50ms定时是否到。

2.4 串口的硬件布置。

目前较为常用的串口有9针串口 (DB9) 和25针串口 (DB25) , 当通信距离较近时 (<12m) , 适合采用电缆线直接连接标准RS232端口。若距离较远, 则需附加调制解调器 (MODEM) 。最为简单且常用的是采用3线制RXD, TXD, GND软握手的零MODEM方式, 即将PC机和PC104的发送数据线TXD与接收数据RXD交叉连接, 二者的地线GND直接相连, 详细情况见图2, 采用软件握手方式, 其它信号线 (如握手信号线) 均不使用。这样既可以实现预定的任务, 又可以简化电路设计、节约成本。

结束语

从宏观层面来看, PC104串口通信在电气控制中具有良好的应用价值, 运行速度快、精度高, 促使电气控制系统的实际运行过程中更具规范性和可靠性。尤其是标准化的设计接口电路的有效使用, 能够切实提高电气控制系统的灵活性, 促进硬件电路的简化, 并有效的缩短开发周期, 促进电气控制系统的稳定有序进行, 进而推动我国电气行业的长足发展。

参考文献

[1]李招峰, 刘建设, 金华标.基于QT/E的串口通信故障及其解决方案[J].计算机技术与发展, 2012.

[2]陈芳兰, 李学敏, 吴辉.基于PC104与DSP的串行通信设计[J].电子技术与软件工程, 2014.

[3]许自敏, 朱子.基于VB MSComm控件在PC机与单片机串口通信中的应用[J].工业控制计算机, 2011.

PC串口 第3篇

关键词:LINUX,通信协议,PCR,串口通信

基因扩增仪(PCR仪)是根据DNA半保留复制原理,通过控制温度变化来自动完成聚合酶链式反应的仪器[1]。PCR仪是生命科学研究领域中使用极为广泛的一种设备,主要应用于基因克隆和医学诊断、遗传工程等领域。目前,随着社会水平的不断提高,人们为保证自己以及家人的生活质量,对医疗卫生要求极为严格。因此为了满足人们的需求,各国都开始在医疗行业上大量投入资金以及人力,鼓励发展医疗行业,从而保证人们的健康与安全。而这种趋势也催动了生命科学仪器的发展,基因扩增仪作为生命科学重要仪器之一,其处理器也从开始的单片机发展为ARM型。但是仅能单机操作的基因扩增仪并不能满足当前需求,从而与其他仪器设备的通信也成为目前主要研究方向之一。

本文重在利用OK6410开发板串口通信模块和Qtcreator环境下使用的第三方串行通信控件qextserialport,自定义通信协议,研究与实现ARM型基因扩增仪与PC机的串行通信,以完成相应的功能要求,满足社会需求。

1相关技术研究

1.1串口通信

串口通信是指外设和计算机间,通过数据信号线、地线、控制线等,按位进行传输数据的一种通讯方式。这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,但其传输速度比并行传输低[2]。

本文用的是RS-232串行通信,其接口标准:EIA公布的RS-232C是用得最多的一种串行口通讯标准。事实上的RS-232C串口标准配置为”D”型9针插头,其引脚定义如图1。

1.2 QT图形界面系统

Qt是一个跨平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的,非常容易扩展,并允许真正地组件编程。本设计中上位机和下位机程序均利用QT开发,通过选择不同的编译器,即可生成X86版本和ARM版本的应用程序[3]。通过上位机的界面上的按钮可以实现对基因扩增仪各种参数的设置,也可读取PCR状态信息。使用QT开发程序具有以下优点:

1) 优良的跨平台特性;2) 面向对象;3) 丰富的API及类库;4) 运行速度快;5) 大量的开发文档及实用的开发工具。

2基因扩增仪与PC机的通信硬件连接

本设计中基因扩增仪采用飞凌公司出品的开发板OK6410来实现。该开发板搭载了三星公司ARM11的处理器S3C6410。底板上提供了1个五线RS 232电平串口(UART0)和3个三线TTL电平串口(UART1~UART3)。在开发阶段,需要两根串口线与PC机连接,其中UART0默认为调试串口,它的作用是可以与电脑直接相连,进而监控系统调试信息,另外一个串口需要使用MAX232将TTL电平转化为RS-232电平才可以和电脑相连,该串口线用于数据和指令的发送[4]。

本文采用三线制接法,ARM板上的RXD、TXD、GND分别与PC机的TXD、RXD、GND相连。如图2。

3基因扩增仪与PC机的通信软件的设计

通信程序中下位机使用Qtcreator编写。通信时各参数设置情况如下:波特率为9600bit/s,数据位8位,停止位1位和无奇偶校验位。

3.1串行通信协议的制定

PC机与基因扩增仪的通信中需要实时的数据交互,因此必须保证通信的质量。而通信质量的保证很大程度上依赖于制定的通信协议的可靠性和高效性。本设计自定义了一种具备高效传输性的面向字节的通信协议,它使用的算法简单、变换效率高、可靠性强。在发送端中,其每一帧的格式如表1所示。

本设计中的通信是以帧为传送格式来创建同步过程的。每一帧都用2 byte来表示它的开始标志和结束标志,称为Begin Mark和End Mark,分别由固定值01H和0DH来表示,命令部分由A(41H)~Z(5AH),a(61H)~z(7AH)构成,占用1byte,数据部分根据命令的不同会有较大差别,且长度不固定,用来完成发送开关量信息、参数设定、打印信息发送等功能。部分命令就已确保了数据部分的长度,而在某些命令下数据长度是可变的,这时候需要在数据部分加入数据长度信息。在帧校验部分,本设计采用了异或和的校验方式,将从开始标志到数据部分的所有信息进行异或运算,最终的结果作为帧校验,占用1byte。

在接收端,收到信息后,会对接受到的信息进行解析,首先会对接收到的数据进行校验计算,与接受到的帧校验进行对比,如果一致,则证明数据完整可靠,再进行命令部分和数据部分的解析,如果数据格式全部正确,则接收端会反馈给发送端正确接收的应答命令(ACK帧)如表2,并且执行相应的命令。如果数据格式错误,则反馈给发送端未正确识别命令(NAK帧)如表3,并且附含错误码来指明出错部分。

NAK帧格式中错误码部分用31H~36H定义了六种错误码,依次代表的错误信息为:校验错误、命令错误、数据格式错误、数据内容错误、命令权限错误和输入模式错误。

3.2通信命令介绍

其中PCR仪加热模块分三个区域,分别称为模块1、模块2、模块3

模块1温度(3 bytes):= 实际温度* 10,即检测温度为85.5时发送855

模块2温度(3 bytes):= 实际温度* 10,即检测温度为85.5时发送855

模块3温度(3 bytes):= 实际温度* 10,即检测温度为85.5时发送855

顶盖温度(3 byte):= 实际温度,即检测温度为110时发送110

环境温度(3 byte):= 实际温度,即检测温度为110时发送110

设定温度(3 bytes) := 设定温度* 10,即设定温度为85.5时发送855

设定梯度范围(3 byte) := 设定梯度* 10,即设定温度为2.1时发送21

设定温度升降幅度(2 byte) := 实际设值* 10,即设定每秒升温度为2.1时发送21

开关量一(1 byte):b0–系统是否运行,b1–b3–备用,b 4–模块散热风扇是否运行,b5–电源散热风扇是否运行,b6–b7备用

故障代码(1 byte)

3.3通信软件的设计

3.3.1下位机程序设计流程图

下位机接收数据并可以在接受并处理上位机发送来的请求,完成相应的工作,软件设计流程图如图3所示:

3.3.2上位机程序设计

上位机可通过指令读取PCR状态信息,可以曲线直观显示下位机传输的数据,并且具有保存功能;并且可发送命令对下位机进行设置,命令语句如下:

str="81323132003081"; //自定义通信协议内容out Data=myHelper::HexStrToByteArray(str);//将收到的16进制数据转换

size=out Data.size();//计算发送长度

my Com→write(out Data);//将数据进行串口发送

4设计实现结果

上位机软件实现结果程序调试成功后,上位机正确获取基因扩增仪部分数据,如表4。

上位机图形界面效果图如图4:

4结束语

PC串口 第4篇

Windows CE.NET是Microsoft推出的功能强大的紧凑、高效、可伸缩的32位嵌入式操作系统,主要面对各种各样的嵌入式系统和产品。该系统所具有的多线程、多任务、完全抢占式的特点是专为各种具有严格资源限制的硬件系统所设计的[1]。

Windows CE.NET是可移植的,若将它移植到目标平台上,则必须为平台上已建立的设备提供驱动程序。Windows CE.NET自带大量的硬件驱动程序,其中包括串口。本文以串口驱动为例,阐述如何编写驱动程序,为操作系统无内置支持的硬件编写驱动程序提供参考。由于应用程序不是直接与驱动打交道,在此给出实际例子,在串口驱动下实现单片机(SAMSUNG S3C2410)与PC的通信[2],并对该应用程序进行详细分析。上位机利用串口调试助手V2.1进行结果验证。

1 Windows CE系统驱动特点

Windows CE.NET的驱动程序可以从多角度进行区分:从加载以及接口方式来分有本机设备驱动程序、可加载驱动(流驱动)程序;从驱动层次上分有独立驱动程序、层次驱动程序。本机设备的驱动程序用于低级、内置设备;流接口驱动程序实现一组固定的流接口函数,它是一个动态链接库(DLL),由设备管理程序负责加载、管理;单体驱动程序把中断处理、I/O操作、硬件控制等代码放在一起。分层驱动程序把驱动程序的代码分为两层,即模型设备驱动(Model Device Driver,MMD)和平台相关驱动(Platform Dependence Driver,PDD)。MDD层包含某一类型的驱动程序所通用的代码,PDD包含特定硬件或平台专用的代码[3]。MDD与PDD之间通过DDSI(Device Driver Service provider Interface)函数进行交互。它们之间的关系如图1所示。

当然这种区分并不是绝对的。串口驱动就是以流驱动接口作为本机设备驱动存在的,同时也是一种分层驱动程序。

2 串口驱动程序分析

串口驱动属于流驱动。实现流式接口驱动程序通常需要四个步骤[4]:

(1) 为流式接口驱动程序选择一个前缀;

(2) 实现流式接口驱动DLL所必须的接口函数;

(3) 编写DLL的导出函数定义文件.DEF;

(4) 为驱动程序配置注册表。

通常情况下为串口驱动选择前缀“COM1”;接口函数包括一些以“COM”打头的函数:COM_Init();COM_Deinit();COM_Open();COM_Close();COM_IOControl();COM_Read();COM_Write();COM_Seek()。这些接口函数属于MDD层函数。该函数的实现在C:/WINCE420/PLATFORM/SMDK2410/DRIVERS/SERIAL/mdd.c中。

COM_Init是在串口设备被检测后由设备管理器device.exe调用的,主要的作用是初始化设备。COM_Init先分配一个HW_INDEP_INFO结构体,分配之后再初始化结构体中每个成员,指定驱动程序的优先级,接下来调用函数GetSerialObject(DeviceArrayIndex),这个函数由PDD层定义,返回HWOBJ结构体, MDD通过调用这个函数才能调用底层实现的函数。利用底层函数SerInit设置串口的硬件配置,如波特率,并建立相应的缓冲作为接收的中介(结构体HW_INDEP_INFO和HWOBJ 由微软提供,路径为C:/WINCE420/PUBLIC/COMMON/OAK/INC/serhw.h)。

COM_Open在调用CreateFile后,用于以读/写模式打开设备,并初始化所需要的空间/资源等,创建相应的实例,为后面的操作做好准备。

COM_Read是获取串口所接收到数据的操作,COM_Write是把要传送的数据送到串口。

由于串口驱动属于流式驱动,以.dll形式存在,所以必须在DEF中定义要导出的接口集。如下建立.def文件:(其中ser2410是驱动程序的名称)

LIBRARY ser2410

EXPORTS

COM_Init

COM_Deinit

COM_Open

COM_Close

COM_Read

COM_Write

COM_Seek

COM_PowerDown

COM_PowerUp

COM_IOControl

为驱动程序配置注册表是在注册表中建立驱动程序入口点,以便设备管理器识别和管理。下面是串口驱动在注册表中的信息(路径:C:/WINCE420/PLATFORM/SMDK2410/FILES/platform.reg)

[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/SER2410]

"DeviceArrayIndex"=dword:0

"Irq"=dword:03

"IoBase"=dword:50000000

"IoLen"=dword:2C

"Prefix"="COM"

"Dll"="SER2410.Dll"

"Order"=dword:0

"Priority"=dword:0

"Port"="COM1:"

"DeviceType"=dword:0

"FriendlyName"="Serial Cable on COM1:"

"Tsp"="Unimodem.dll"

以上四个步骤完成后,编译链接并把内核下载至目标平台,此时目标平台就为串口通信提供了驱动和基础。

3 串口与PC通信

在工业控制中,常需要将单片机采集到的数据传送给PC机处理、显示,并且根据处理结果给单片机发送控制命令。因而它在工业自动化、通信和军事等领域的应用十分广泛。随着Windows CE嵌入式操作系统在工业控制中的广泛应用,设计和实现Windows CE下PC与单片机的串行通信具有重要的意义[5]。本文在PC机中利用开发工具Embedded Visual C++设计应用程序ComApplacation.exe[6]。该程序能够将通过串口将目标的数据传到PC机,并能通过串口读出从PC机发来的数据并显示。该应用程序在PC机中编译、链接,形成可执行文件后下载到目标机中,其应用程序界面如图2所示。

上位机利用串口调试助手V2.1[7]接收数据,并发送数据到串口,如图3所示。

3.1 应用程序编程原理

串口驱动属于流式驱动。流式接口驱动程序的体系结构如图4所示[8]。

应用程序使用文件API对设备进行访问,文件API被操作系统转发到FileSys.exe进程中;然后FileSys.exe发现是对设备的操作,于是交给设备管理器处理,接着设备管理器根据具体的请求,调用不同的流式接口驱动程序中暴露的接口;最后驱动程序负责与硬件交互。

3.2 应用程序代码分析

由于把设备当作文件来访问,应用程序的编写显得简单易懂,但需注意以下两个问题[9]:

(1) 在WinCE.NET中使用的编码方式都是Unicode,对于串口字符的显示,存在编码显示的问题,即常说的ANSIcode 到Unicode的转化问题。利用WideCharToMultiByte()和MultiByteToWideChar()进行普通字符(ANSIcode)和宽字符(UNIcode)之间的相互转化。

(2) 读/写串口的速度较主线程慢,读/写串口并发执行,所以对读串口和写串口应该单独编写线程。

代码主要部分:

打开串口:CreateFile( IndexText,GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL );

设置波特率、超时值:

TIMEOUTS CommTimeOuts;

CommTimeOuts.ReadIntervalTimeout = 0xFFFFFFFF;

CommTimeOuts.ReadTotalTimeoutMultiplier = 10;

CommTimeOuts.ReadTotalTimeoutCons tant = 10;

CommTimeOuts.WriteTotalTimeoutMultiplier = 50;

CommTimeOuts.WriteTotalTimeoutConstant = 100;

SetCommTimeouts( hSer,&CommTimeOuts );

读串口:ReadFile(hPort,&Byte,1,&dwBytes,NULL);

写串口:WriteFile(hSer,(TCHAR*)WBuf,lstrlen(WriteBuffer)*sizeof(char),&dwBytes,NULL)

线程的同步[10]:在Windows CE中采用同步对象方法来协调多线程的执行。一个线程监视一个同步对象,当用信号通知该对象时,解除正在阻塞的线程,并调度该线程。同步对象利用事件方式来实现。

g_hevWriteEnable = CreateEvent(NULL,FALSE,FALSE,NULL); //信号状态为无信号状态

SetEvent(g_hevWriteEnable); //设置信号状态为有信号状态,这样才能被

WaitForSingleObject调用

WaitForSingleObject(g_hevReadEnable,INFINITE) //为真,则说明为有信号状态,程序继续执行。

3.3 实验结果

实验程序采用Embedded Visual C++编写,在PC机上编译、调试成功后,下载到运行Windows CE.NET 4.2的实验板上,实现了与PC机的正确通信,获得了很好的效果。实验结果如图2、图3所示。当图2中输入“hello world”,在图3调试助手中则立刻显示“hello world”;在调试助手输入端输入“I Can Play!”,则图2立刻收到该数据并正确显示。可见该实验结果是正确的。

4 结 语

在操作系统中设备驱动程序扮演着无名英雄的角色,驱动程序的任务就是把操作系统的驱动接口“映射”到具体的功能实现中。通过驱动程序的抽象,操作系统与应用程序都可以实现,与具体硬件无关,所以驱动的设计与编写意义重大。为此,详细分析了基于串口的流驱动程序的编写,并在该驱动下实现了与PC机的通信,为继续研究其他硬件驱动和编写相应的应用程序提供了参考。

参考文献

[1]姜波.Windows CE.NET程序设计[M].北京:机械工业出版社,2007.

[2]三星S3C2410用户手册重点介绍[EB/OL].http://www.pcbon.NET/zuixin_show.asp?id=4360.

[3]周毓林,宁杨,陆贵强,等.Windows CE.NET内核定制及应用开发[M].北京:电子工业出版社,2004.

[4]何宗键.Windows CE嵌入式系统[M].北京:北京航空航天大学出版社,2006.

[5]周成朋,徐亚娟,殷小贡.Windows CE.NET 4.2下PC与单片机的串行通信[J].现代电子技术,2005,28(8):31-33.

[6]汪兵.EVC高级编程及其应用开发[M].北京:中国水利水电出版社,2005.

[7]串口调试助手2.7[EB/OL].http://dl.pconline.com.cn/ht ml_2/1/75/id=2176&pn=0.ht ml.

[8]张冬泉,谭南林,苏树强.Windows CE实用开发技术[M].北京:电子工业出版社,2009.

[9]丁玉芳,石靖峰,李允俊.基于Windows CE.NET驱动程序设计[J].信息技术,2007,31(4):130-132.

PC串口 第5篇

关键词:串口通信显示系统,LabVIEW,单片机,PC机,液晶屏

随着工业的不断进步与发展,控制系统越来越复杂,处理的数据量也越来越大,但单片机等主控芯片的处理能力有限,难以满足控制的需求,因此分布式系统逐渐成为主流。在分布式系统中各种数据的采集和对执行机构的控制都由下位机完成,而对采集到的数据进行进一步分析和处理则由功能更强大的上位机完成。由于单片机具有高可靠性、价格低廉和可应用于恶劣工业环境的特点,在分布式控制系统中大多采用单片机作为下位机。而PC机因其处理能力强及人机交互好等特点常被用作上位机。单片机与PC机通信常选用串口通信方式,串口通信是通过数据信号线、地线及控制线等按位进行数据传输的一种通信方式[1]。在PC领域里以RS-232、RS-485协议为代表的串口通信因其通信稳定、抗干扰能力强及成本低等优点被普遍应用在工业领域。

Lab VIEW( 又称为G语言) 是一种基于数据流的图形化编程环境[2],近年来在检测和控制领域得到了快速发展。因其程序是图形化的框图形式,在人机交互等方面具有天然的优势,故已逐渐成为上位机编程软件的不二选择。笔者设计了一种基于Lab VIEW的单片机与PC机串口通信显示系统,为了更直观地了解串口通信情况,为系统填加显示模块,用LCD实时显示收发的数据,从而验证串口通信是否成功。

1硬件设计

串口通信系统显示由4部分组成( 图1) : PC机作为上位机,负责数据的发送、接收和人机交互; 单片机最小系统作为下位机,负责串口数据的接收、发送和液晶驱动; MAX232芯片作为连接前两部分的桥梁,将RS-232的负逻辑电平( 逻辑1为 - 15 ~ - 3V,逻辑0为3 ~ 15V)[3]转换成TTL电平( 5V为逻辑1,0V为逻辑0) ; CH240128液晶显示屏负责显示数据的接收情况。

首先由单片机、晶振、电阻及电容等构成单片机最小 系统[4],在最小系 统的基础 上结合MXA232芯片引出DB9串行端口。将单片机串口发送TXD与PC机串口接收RXD相连,单片机串口接收RXD与PC机串口发送TXD相连,并将二者的地相连。依据CH240128液晶的引脚定义, 将其与单片机I/O引脚相连。串口通信显示系统的硬件电路如图2所示。

2软件设计

软件程序设计分为两部分: 一是运行在PC端的Lab VIEW程序; 二是运行在单片机中的C51程序。结合硬件实现串口通信与显示功能,即在PC端发送一串字符串,通过串口发送到单片机中,单片机接收到数据后返回该字符串,并将其显示到液晶上。

2.1LabVIEW程序设计

Lab VIEW串口通信程序主要通过NI-VISA节点来完成,NI-VISA是一个字节级的通信接口驱动。通过NI-VISA函数[5]编写的程序可以在任何具有串行端口NI-VISA[6]的机器上运行,这就意味可以在具有Lab VIEW和Windows的机器上写入和测试串行VI,然后在NI的板卡[7]上使用相同的程序。其中,NI-VISA主要包括串口初始化、串口写、串口读、Bytes of port[8]及串口关闭等函数。串口初始化主要负责设置串口号、波特率及奇偶校验等参数。为了下位机能正确识别数据,在数据首尾添加标识位后写入串口。

2.2单片机程序设计

单片机串口程序( 图3) 参数要与上位机的参数设置一致( 如波特率、奇偶校验[9]等) 。利用判断语句去除标识位后,对上位机发送来的数据进行解析,再将数据写入串口缓冲区SBUF寄存器。 为了在液晶显示收到的数据,需要按照液晶的驱动时序图设置写数据及写指令等时序完成液晶的驱动,还需匹配串口通信和液晶显示的时序。由于液晶显示需要一定的时间,而串口通信数据收发很快,难以做到收到一个字节就显示一个字节的数据,因此需要将收到的数据放到一个数组中以中断的方式显示数据。

3系统运行调试

结合硬件和软件设计,完成基于Lab VIEW的单片机与PC机串口通信显示系统设计。该系统运行情况如图4所示。在上位机发送数据123, 单片机接收到数据后将123返回到上位机,并将数据显示在液晶屏上,实现了上位机( PC机) 与下位机( 单片机) 的数据通信。

4结束语

PC串口 第6篇

随着信息技术的飞速发展和科技进步,在许多现代化集中管理的控制系统中,需要对现场数据进行统计、分析、打印、报警等,同时又要对现场设备进行实时控制,完成各种操作。单片机作为控制系统中必不可少的部分,在各个领域得到了广泛的应用。由于单片机具有体积小、价格低廉、适应性强的特点,一般在工业控制系统中,各种数据的采集和执行机构的控制都是由单片机来完成。而单片机的计算能力有限,难以进行复杂的数据处理。在功能比较复杂的自动控制系统中,通常以工控机为上位机,单片机为下位机,由单片机完成数据的采集及对设备的控制,而由上位机完成各种复杂的数据处理及对单片机的控制。在分布式控制系统中大多采用单片机作为下位机来进行数据采集和现场控制,在这些应用中,单片机只是直接面对被控对象底层,而对采集到的数据进行进一步的分析和处理工作,则是由功能强大的PC机来完成的。因此,PC机和单片机之间就有着大量的数据交换。在绝大多数PC机的标准配置中,都有一个到多个RS 232串口,因为RS 232串口担负着PC机和单片机之间大量的数据交换的重任。单片机89C52用于自动控制及数据传输,并通过RS 232接口向上位机进行数据通信[1]。

1 RS 232串口通信

1.1 RS 232C标准

RS 232C标准(协议)的全称是EIA-RS-232C标准,其中EIA(Electronic Industry Association)代表美国电子工业协会,RS(ecommeded standard)代表推荐标准,232是标识号,C代表RS 232的最新一次修改。在这之前,有RS 232B,RS 232A,它规定连接电缆和机械、电气特性、信号功能及传送过程。

1.2 RS 232的接口引脚定义

由于RS 232C并未定义连接器的物理特性,因此,出现了DB-25,DB-15和DB-9各种类型的连接器,其引脚定义也各不相同[2]。常用的连接器接口图如图1所示,DB9的引脚功能见表1。

RS 232C标准接口有25条线,分别为4条数据线、11条控制线、3条定时线、7条备用和未定义线,常用的只有9根,它们是:

(1)状态线

数据准备就绪(Data Set Ready,DSR):有效时(ON)状态,表明数据通信设备可以使用。

数据终端就绪(Data Terminal Ready,DTR):有效时(ON)状态,表明数据终端设备可以使用。

这两个信号有时连到电源上,上电就立即有效。

这两个设备状态信号有效,只表示设备本身可用,并不说明通信链路可以开始进行通信了,能否开始进行通信由下面的控制信号决定。

(2)联络线

请求发送(Request to Send,RTS):DTE准备向DCE发送数据,DTE使该信号有效(ON状态),通知DCE要发送数据给DCE了。

允许发送(Clear to Send,CTS):对RTS的响应信号。当DCE已准备好接收DTE传来的数据时,使该信号有效,通知DTE开始发送数据。

RTS/CTS请求应答联络信号是用于半双工MODEM系统中发送方式和接收方式之间的切换。在全双工系统中,因配置双向通道,故不需要RTS/CTS联络信号,使其变高。

(3)数据线

发送数据(Transmitted Data,TXD):DTE发送数据到DCE。

接收数据(Received Data,RXD):DCE发送数据到DTE。

(4)地线

有两根线SG,PG:信号地和保护地信号线。

(5)其余

载波检测(Carrier Detection,CD):用来表示DCE已接通通信链路,告知DTE准备接收数据。

振铃指示(Ringing,RI):当DCE收到交换台送来的振铃呼叫信号时,使该信号有效(ON状态),通知DTE,已被呼叫[3]。

通常的应用系统中,往往是在CPU和I/O设备之间传送信息,两者都是DTE,上位机和单片机89C52之间的通信,双方都能发送和接收,他们的连接只需要使用三根线即可,即RXD,TXD和GND,这种连接方式,即两个串口连接时,接收数据针脚与发送数据针脚相连,彼此交叉,信号地对应接地即可。连接方式如图2所示。

1.3 波特率的概念

串行通信中,每秒传送的数据位称为波特率。如数据传送的波特率为1 200波特,采用N.8.1帧格式(10位),则每秒传送字节为120个,而字节中每一位传送时间即为波特率的倒数:T=1/1 200=0.833 ms。同样,如数据传送的波特率为19 200波特,则字节中每一位传送时间T=1/19 200=0.052ms。根据数据传送的波特率即字节中每一位的传送时间,便可用普通I/O口来模拟实现串行通信的时序[4]。

1.4 RS 232C的电气特性

(1)逻辑电平

在TXD和RXD上:

逻辑1(MARK):-3~-15V;

逻辑0(SPACE):+3~+15V。

在RTS,CTS,DSR,DTR和DCD等控制线上:

信号有效(接通,ON状态,正电压):+3~+15V;

信号无效(断开,OFF状态,负电压):-3~-15V。

由以上定义可以看出,信号无效的电平低于-3V,也就是当传输电平的绝对值大于3V时,电路可以有效地检查出来,介于-3~+3V之间的电压无意义,低于-15 V或高于+15 V的电压也认为无意义,因此,实际工作时,应保证电平的绝对值在3~15V之间。当计算机和TTL电平的设备通信时,如上位机和单片机通信时,需要使用RS 232/TTL电平转换器件,常用的有MAX232。

1.5 RS 232与单片机之间的接口电路MAX232

由于RS 232信号的电平和单片机串口信号的电平不一致,必须进行二者之间的电平转换。MAX232由单一的+5V电源供电,只需配5个高精度10μF/50V的钽电容即可完成电平转换,转换后的串行信号TXD,RXD直接与上位机的串口连接。MAX232芯片的内部结构基本可分三个部分:

第一部分是电荷泵电路。由1,2,3,4,5,6脚和4只电容构成。功能是产生+12 V和-12 V两个电源,提供给RS 232串口电平的需要。

第二部分是数据转换通道。由7,8,9,10,11,12,13,14脚构成两个数据通道。其中13脚(R1in)、12脚(R1out)、11脚(T1in)、14脚(T1out)为第一数据通道。8脚(R2in)、9脚(R2out)、10脚(T2in)、7脚(T2out)为第二数据通道。TTL/COMS数据从T1in,T2in输入转换成RS 232数据从T1out,T2out送到电脑DB9插头;DB9插头的RS 232数据从R1in,R2in输入转换成TTL/COMS数据后从R1out,R2out输出。

第三部分是供电。15脚GND、16脚VCC(+5V)[5]。

1.6 RS 232的不足之处

(1)传输距离有限,实际最大传输距离只有50m。

(2)传输速率较低,在异步传输时,速率最大为19 200b。

(3)接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。

1.7 消除干扰噪声的主要方法

针对以上所述RS 232易产生共模干扰的问题,常用的解决方法主要是采用光隔离器,光隔离器穿过一个隔离的屏障来传输信号。一个光隔离器由一个光敏电阻耦合的发光二极管构成。流过发光二极管的电流使得它以可见光或者红外线的方式释放能量。这些能量将这个光敏电阻打开,导致在这个电阻的发射极和集电极之间的低阻抗。这个发光二极管的基极可以留着没有连接。从基极到发射极加入一个电阻可以导致更快的开关速度,但是输出电流更低。

2 结语

RS 232串口通信是PC机和单片机之间信息传递的枢纽,一切数据和指令的传输必须由RS 232串口来完成。针对RS 232存在的不足之处加以改进之后,RS 232使得PC机和单片机之间能高效地通信,采用电平转换芯片MAX232实现TTL逻辑电平和RS 232电平之间的相互转换,转换之后的串行信号TXD,RXD直接与PC机的串口连接,如此连接,既可体现出单片机的灵活控制功能,又可发挥出PC机强大的计算和显示功能,有利于对现场信号的实时采集、处理和监控,确保了良好的人机界面的交互性[6]。

参考文献

[1]李朝青.单片机原理及接口技术[M].3版.北京:北京航空航天大学出版社,2005.

[2]陈传波,杜鹃,张智杰.WIN32下基于RS232协议的通信方法及应用研究[J].南昌大学学报,2005,27(3):70-75.

[3]金卫民.VC下利用串口进行数据通信的研究[J].计算机工程和设计,2003,24(12):120-123.

[4]喻桂兰,彭宇宁,赵开开.VB6.0与RS232在多机通信技术中的应用[J].实验科学与技术,2009,8(4):54-57.

[5]崔玮.Protel99SE电路原理图与电路板设计教程[M].北京:海洋出版社,2005.

PC串口 第7篇

关键词:Visual Basic 6.0语言,MSP430单片机,PC机,串口通信

1 引言

随着计算机技术的不断发展,计算机应用在其发展过程中逐步形成两大分支,一是通用计算机,PC机为代表,着眼于高速数值运算和数据处理,但实时测控能力较弱。二是嵌入式微机,以单片机为代表,着重发展测控技术,但其数值运算和数据处理能力较弱。目前,在工业控制以及数据采集和数据处理的大型系统中,由于PC机软件资源丰富,人机交互方便等优点。以PC机作为上位机,以单片机组成的控制单元作为下位机,较好地实现测控及显示,又能较快地实现数据采集和处理。逐渐成为现代工业控制领域的一个优化方案[1]。

故提出了基于VB6.0的PC机与MSP430单片机串行通信的实现方法。以RS485接口为基础,以PC机为上位机,以MSP430系列单片机为下位机。通过VB6.0实现了对各个下位机控制参数的实时监控和管理,解决了长期以来单片机与PC机互连中编程难度大,运行效率低的瓶颈。

2 MSComm控件与MSP430单片机

2.1 MSComm控件[2]

计算机编程语言中,Visual Basic 6.0是Microsoft公司推出的面向对象的可视化开发编程工具[3],具有丰富的数据类型和结构化程序结构,开发效率高,界面制作美观方便等优点,且应用日益广泛,故Visual Basic 6.0语言做到了真正的面向对象编程。其中,MSComm控件全称为Microsoft Communication Control,是微软公司提供的Active X控件,目的是为了简化Windows下串行通信编程。通过对此控件的属性和事件进行编程,从而实现数据的发送和接收。

MSComm控件通过串行端口传输和接收数据,为应用程序提供串行通信功能。MSComm控件提供下列两种处理通信的方式:事件驱动方式和查询方式。

(1)事件驱动方式

事件驱动通信是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事件发生时需要得到通知,例如,在串口接收缓冲区中有字符,Carrier Detect或Request To Send线上的一个字符到达或一个变化发生时。在这种情况下可以利用MSComm控件的On Comm事件捕获并处理这些通信事件。On Comm事件还可以检查和处理通信错误,以及所有通信事件和通信错误的列表。

(2)查询方式

查询方式实质上还是事件驱动,但在有些情况下,这种方式显得更为便捷。在程序的每个关键功能之后,可以通过检查Comm Event属性的值来查询事件和错误。如果应用程序较小,并且是自保持的,这种方法可能是更可取的。通过比较故采用的是事件驱动方式。

2.2 MSComm控件属性

Comm Port属性:用于设置或返回串口号连接的串行端口号,Windows将会利用该串口和外界通信。默认值为1,即对COM1进行操作,最大值为16。

Settings属性:以字符串的形式设置或返回串口通信参数。包括串口通信的比特率,奇偶校验,数据位长度、停止位等。其默认值是“9600,N,8,1”,表示串口比特率是9600bit/s,不作奇偶校验,8位数据位,1个停止位。

Port Open属性:设置或返回串口状态。值为True时打开串口,值为False时关闭串口。

In Put属性:从接收缓冲区中读取数据并清空该缓冲区,该属性设计时无效,运行时只读。寄存器的特性是先进先出。

Out Put属性:向发送缓冲区发送数据,该属性设计时无效,运行时只读。

In Buffer Size属性:设置或返回接收缓冲区的大小,缺省值为1024字节。

Inputlen属性:设置或返回一次从接收缓冲区中读取字节数。

Input Mode属性:设置或返回接收数据的类型。若值为0时则表示以文本形式读取;若值为1时则表示以二进制形式读取。通常PLC和PC构成的通信系统都采用二进制接收方式。

In Buffer Count属性:设置或返回接收缓冲区中等待计算机接收的字符数。当将其值设为0时,则输入寄存器将被清空。

Out Buffer Size属性:设置或返回发送缓冲区的大小,缺省值为512字节。

Out Buffer Count属性:设置或返回发送缓冲区中等待计算机发送的字符数。当将其值设为0时,则输出寄存器将被清空。

Rthreshold属性:该属性为一阀值。当接收缓冲区中字符数达到该值时,MSComm控件设置Commevent属性为Com Ev Receive,并产生On Comm事件。用户可在On Comm事件处理程序中进行相应处理。若Rthreshold属性设置为0,则不产生On Comm事件。

SThreshold属性:在发生On Comm事件之前传输缓冲区中的最小字符数。MSComm1.SThreshold=0数据传输事件不产生On Comm事件;若设MSComm1.RThreshold=1则表示传输缓冲区全空时,MSComm控件产生On Comm事件。

Handshaking属性:设置或返回硬件握手协议,0表示没有握手协议,不考虑流量控制;1表示在数据流中嵌入控制符来进行流量控制;2表示由信号线RTS自动进行流量控制;3表示1、2两者皆可。

通信初始化程序如下:

2.3 MSP430单片机[4]

就目前来看,高性能16位单片机主要有凌阳系列、飞思卡尔系列、美国德州仪器(TI)公司的MSP430系列等类型的单片机。本文推荐选用美国德州仪器(TI)公司的MSP430系列单片机,MSP430系列单片机是美国德州仪器(TI)1966年开始推向市场的一种16位超低功耗的混合信号处理器(Mixed signal Processor)称之为混合信号处理器,主要是由于其针对实际应用需求,把许多模拟电路、数字电路和微处理器集成在一个芯片上,以提供“单片”解决方案。随着Flash技术的迅速发展,在2001年7月到2002年又推出了带LCD控制器的Flash单片机F41X、F43X、F44X系列。本系统所选的MSP43OF449是一个16位的、具有精简指令集的、超低功耗的混合型单片机,自问世以来,由于它具有极低的功耗,丰富的片内外设和方便灵活的开发手段,得到广泛的应用。

(1)低电压超低功耗工作电压为1.8~3.6V,1MHz的时钟条件下运行,耗电电流因不同的工作模式而不同。活动模式为280u A,待机模式为1.1u A,掉电模式为0.1u A。具有16个中断源,并且可以任意嵌套,使用灵活方便。用中断请求将CPU唤醒只要6us,可编制出实时性特别高的源代码;5种节电模式;可将CPU置于省电模式,用中断模式唤醒程序。

(2)强大的处理能力16位精简指令结构,15Ons指令周期,具有丰富的寻址方式,简洁的27条内核指令以及大量的模拟指令;大量的寄存器以及片内数据存储器都可参加多种运算;还有高效的查表处理方法。

(3)丰富的片内外设将大量的外围模块集成到片内,称之为片内外设。不同型号器件的片内外设不同,但其相同模块的工作原理基本相同,主要的片内外设有:时钟模块、I/O端口、定时器、通信模块、液晶驱动模块、模数转换器、硬件乘法器、模拟比较器和Flash存储器等。MSP430单片机的时钟由高速晶体、低速晶体、数字控制振荡器DCO、锁频环FLL以及锁频环增强版本FLL+等构成。

2.4 串口通信模块

通用串行同步异步通信接口USART(Unversal Synchronous Asynchronous Receive/Transmit)是一个串行通道,它允许7或8位串行位流经预先编程的速率或外部时钟确定的速率移入、移出MSP430。

USART可进行配置,以便同时支持同步(SPI)与异步(UART)操作,并且可从几个内部及外部时钟源(与CPU时钟无关)中进行选择,所用的是异步(UART)操作。在UART模式下,速率也可达到2Mbps。在UART模式下,实现可靠通信至少要求每位3或4个时钟。例如,8MHz时钟除以4可以支持高达2Mbps的速率。波特率发生器是用波特率选择寄存器和调整控制寄存器来产生串行数据位定时。

波特率的计算:波特率=BRCLK/(UBR+(M7+M6+M5+M4+M3+M2+M1+M0));其中BRCLK为晶振频率,UBR为分频因子的整数,即晶振频率除以波特率的整数部分,而M7,M6,M5,M4,M3,M2,M1,M0分别为调整位,是分别写在UMCTL中的,如果置位,则对应的时序时间只能波特率分频器的输入时钟扩展一个时钟周期,每接受或发送一位,在调整控制寄存器的下一位被用来决定当前位的定时时间。

3 MSP430单片机与PC机串口通信

设计MSP430系列单片机的通信软件[5,6],实际上是对MSP430系列单片机的串行口的设计,这里采用Visual Basic 60语言来设计,在PC机上运行的界面如图1所示。

在发送数据文本框中输入一个“0~255”之间的整数,并单击发送数据按钮,单片机将接收到该数据并显示这个数据,然后作除4处理,结果再经串口返回到PC机端。例如当发送数据160时,单片机电路中数码管上显示160,同时单片机对160作除4处理,得到40返送回PC机上显示。

由于PC机端的RS232电平与MSP430单片机端的TTL电平不匹配,故必须进行电平转换,这里采用美信MAX232芯片完成。电路其他部分为单片机常规电路。以下是MSP430单片机与PC机串口通信VB6.0程序代码如下:

(1)PC机端VB程序代码

初始化部分代码:

发送功能代码:

接收功能代码:

(2)MSP430单片机的部分程序

单片机的编程包括:设置串行口的工作方式;波特率的设置;发送数据并接收数据。以下为串行口的初始化程序:

CKCSH MOV1B#SWRST,&U 1CT L;先在SWRST=1时,设置串口

4 结语

串口通信是一项广泛应用到各个领域的通信技术,尤其是单片机与PC机间的通信。在实践中VB6.0以其好学易用性得到广泛的应用,MSP430系列单片机以低功耗等特点被应用在测控系统中,两者结合能够快速构筑以单片机采集数据和计算机快速处理的系统。

参考文献

[1]李长林.Visual Basic串口通信技术与典型实例学出版社[M].北京:清华大学,2006.

[2]陈代胜,张莉君.基于VB6.0实现单片机与PC机的串口通信[J].软件导刊,2008,7(2).

[3]罗朝盛,余文芳,余平.Visual Basic6.0程序设计教程[M].3版.北京:人民邮电出版社,2009,02.

[4]胡大可.MSP430系列超低功耗16位单片机原理与应用[M].北京:北京航空航天大学出版社,2000,1.

[5]马壮,吴铮,王永强.基于VB的PC机遇单片机串行通信系统研究与实现[J].唐山学院学报,2008,21(4).

上一篇:英语培训市场下一篇:矿产资源贸易

全站热搜