本设计由单片机与PC机之间的RS-232串行通信端口进行连接。操作者在PC机上选择、编辑、绘制好的所需输出的波形,设置好输出信号的幅度、频率后,然后将这些数据通过RS-232串行通信端口送给单片机,单片机将接收到的数据存入RAM,然后进行A/D、D/A转换、数据处理,按所给的幅度、频率输出操作者所需要的信号波形。其中串口通信是单片机与PC机进行通信的手段。
1 串口通信的原理
串行端口的本质功能是作为CPU和串行设备间的编码转换器。当数据从CPU经过串行端口发送出去时,字节数据转换为串行的位。在接收数据时,串行的位被转换为字节数据。
2 串行通信的数据传送格式
异步串行通信以字符为单位,即一个一个字符地传送。其字符格式通常表示如下:它用一个起始位表示字符的开始,用停止位表示字符的结束构成一帧。异步通信的特点是每次只传送一个字符,每个字符由起始位(规定为低电平)、数据位、奇偶校验位、停止位(规定为高电平1~2位)组成,典型的异步通信数据帧格式。
由于单片机的停止位规定为1位,为了与单片机相匹配,PC机的一帧数据的停止位我们采用1位。
3 串行通信的收发过程
发送方发送数据时,通过发送低电平起始位开始一个字符的传送,起始位之后便按特定的速率发送数据位(包括奇偶校验位),当最后一位数(对于采用奇偶校验位的异步通信来说,最后一位数据往往是奇偶校验位)发送完毕后,发送一个高电平停止位用以标志一个字符传送结束,这样就完成了一帧数据发送。如果不再发送新数据或数据尚未准备好,就将传输线嵌在高电平状态。接收方不断检测传输线的电平状态,当发现传输线由高电平变为低电平时(起始位标志位),即认为有数据传入,进入接收状态,然后以相同的速率检测传输线的电平状态,接收随后送来的数据位,奇偶校验位和停止位。发送与接收设备可以使用各自的时钟源完成数据的发送与接收,无需使用相同的时钟信号。
4 串行通信的传送速率
传送速率用于说明数据传送的快慢。在串行通信中,数据是按位进行传送的,因此传送速率用每秒钟传送二进制数码的位数来表示,称之为波特率。在串行通信中常用波特率来衡量通信速率的快慢,每秒钟传送一位就是一波特,一般异步通信波特率为110~9600KHZ。在选择通信的波特率时,不要盲目追高,要以满足数据传输要求为原则。
5 串行通信的电平转换
PC机与单片机是通过串行口进行通信的。由于单片机的输入、输出是TTL电平(+5V表示逻辑1,电平低于2V便不能被识别为逻辑1;0V表示逻辑0),TTL电平一般不能用于远距离传输,因为传输过程中电平的衰减会使传输数据不准确。而PC机配置的是RS-232串行接口,因此,单片机与PC机之间进行通信时,要进行电平的转换,需要将TTL电平转换为RS-232电平(-5V~-15V表示逻辑1,+5V~+15V表示逻辑0),在传输线上传送的RS-232电平可高达12V,比TTL电平有更强的抗衰减能力及抗干扰能力,可用于远距离传输。常用的电平转换芯片为MAX232,此芯片能实现以上两种电平的相互转换。另外,信号传输的介质最好使用双绞线,有利于抑制外界共模信号的干扰。



