基于C#的串口通信上位机的设计与应用
【摘要】本文研究了Visual C#基于.net平台进行WinForm应用程序的开发,讲述了C#中如何使用C/S结构进行串口通信的开发,研究讨论了串口通信程序的控件、参数及其应用方案,控件包括SerialPort、Timer、Button、TextBox等,参数包括波特率、数据位、停止位、奇偶校验。实现了串口通信数据的接受与发送。
【关键词】串口通信;SerialPort;波特率;奇偶校验
Abstract:In this paper,the Visual C#.Net platform WinForm application development,about how to use the C/S structure in C# serial communication development,discussed the serial communication program control parameters and their applications,controls include SerialPort the timer,Button,TextBox,and so on,the parameters include baud rate,data bits,stop bits,parity.It is realized to send and receive of the serial communication data.
Keyword:Serial communication;SerialPort;Baud rate;Parity
1.引言
C sharp(音标[∫a:p])(又被简称为”C#”)是微软公司在2000年6月发布的一种新的编程语言,并定于在微软职业开发者论坛(PDC)上登台亮相。[1-2]C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、界面、与Java几乎同样的语法,和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NET windows网络框架的主角。[3]微软C#语言定义主要是从C和C++继承而来的,而且语言中的许多元素也反映了这一点。C#在设计者从C++继承的可选选项方面比JAVA要广泛一些(比如说struts),它还增加了自己新的特点(比方说源代码版本定义)。[5-6]C#是一种最新的、面向对象的编程语言。它使得程序员可以快速地编写各种基于MICROSOFT.NET平台的应用程序,MICROSOFT.NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。正是由于C#面向对象的卓越设计,使它成为构建各类组件的理想之选——无论是高级的商业对象还是系统级的应用程序。使用简单的C#语言结构,这些组件可以方便的转化为XML网络服务,从而使它们可以由任何语言在任何操作系统上通过INTERNET进行调用。[6-7]
2.串口通信设计方案
2.1 窗体界面
设计一个窗体应用程序,实现实时数据的发送与接收,窗体界面如图1所示:
图1 窗体设计界面
2.2 编码程序
(1)串口设置:首先设置串口检测功能,如果有多个串口,要都能检测出来并且可以打开串口连接。
(2)波特率:设置串口的常用波特率,在信息传输通道中,携带数据信息的信号单元叫码元,每秒钟通过信道传输的码元数称为码元传输速率,简称波特率。波特率是传输通道频宽的指标。
(3)设置奇偶校验位:奇偶校验能够检测出信息传输过程中的部分误码(1位误码能检出,2位及2位以上误码不能检出),同时,它不能纠错。在发现错误后,只能要求重发。
(4)发送数据:编写发送数据程序,要在tbxSendData.Text中写入一段数据并发送成功
(5)接收数据:要能实时并且连续的接收串口收到的数据
3.软件测试结果与分析
3.1 软件测试结果
编译好程序,运行结果如图2所示:
图2 运行界面
图3 发送数据图
图4 接收数据
3.2 发送数据
如图3所示,在发送数据里输入一串数字“001213”发送。
3.3 接收数据
如图4所示,发送数据后,接收串口收到的数据“Hello,World!”。
3.4 结果分析
基于C#的串口通信上位机的设计,此次设计选择的的串口为“COM1”,奇偶
校验设置“无”,波特率选择为“57600”,数据位设置为“8”,停止位为“1”,上位机向外部设备成功发送数据“001213”,并且成功接收到连续的数据“Hello World!”。
接收数据时此次设计的重点,本次设计采用的方案是事件响应驱动,当串口输入缓冲区的字节数据大于设定值时,触发串口输入中断,这时在中断程序中读取串口输入缓冲区中的数据,具有实时性和灵活性。
此设计成功实现了数据的收发功能,程序能够搜索多个串口并且可以设置串口波特率,停止位,数据位等基本属性,运行流畅,还解决了程序重复运行假死现象,使用方便快捷,在接收连续数据的时候可以随时停止与接收。
4.结语
上位机有两种形式,单片机和PC电脑。单片机容量小,功能简单,不能进行快速大容量的数据计算,系统升级跟维护都不方便。而PC机电脑资源丰富,互换性,可扩展性强。它可以快速准确的进行大量数据运算,并且具有人性化特点,系统升级简单,更换软件即可实现,车型数据可以随加随用。上位机概念现在普遍运用于工控等电子行业中,用来和电子设备(即下位机)通信,通过上位机,人们可以更好的对下位机系统进行监控和维护,上位机让人们的日常生活和工作更加方便快捷,大大的提高了人们的工作效率。
参考文献
[1]刘甫迎,刘光会,王蓉.C#程序设计教程[M].北京:电子工业出版社(第2版),2008.
[2]孙永强,等.Visual C#.NET入门与提高[M].北京:清华大学出版社,2002.
[3]李兰友,杨晓光.Visual C#.NET程序设计[M].北京:北方交通大学出版社,2004.
[4]王昊亮,李刚等.Visual C#程序设计教程[M].北京:清华大学出版社,2003.
[5]佟伟光.Visual Basic.NET实用教程[M].北京:电子工业出版社,2003.
[6](美)Karli Watson Christian Nagel.C#入门经典[M]齐立波译[M].北京:清华大学出版社,2006.
[7][美]微软公司著,熊盛新,许志庆,李钦.Visual C#.NET语言参考手册[M].北京:清华大学出版社,2002.