新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于C8051F020与传感器的振动信号分布式检测方法

基于C8051F020与传感器的振动信号分布式检测方法

作者:时间:2012-02-27来源:网络收藏

PC机的异步串行通信口是采用通用异步接收发送器(简称UART)为核心构成的。UART的产品型号很多,大多采用Ins8250芯片。对UART的编程实际上是对其内部寄存器的操作。UART内部寄存器共有10个。编程时首先要确定串行通信的数据格式,这是通过将选定的数据格式参数写入到线路控制寄存器LCR来完成的,接下来需要将波特率因子写入到波特率因子寄存器来确定双方传输波特率,再通过读线路状态寄存器LSR来判断芯片是否就绪或有错等。通信线路控制寄存器LCR的格式如图4所示。  

30.jpg

通过将参数字节写入到线路控制寄存器,可以将UART编程为这样的串行通信数据格式:1位起始位,8位数据位,1位奇偶校验位,1位停止位,1帧共11位。既然能够在PC机上实现1帧11位的数据格式,并且改变线路控制寄存器的D5、D4、D3位的值能将奇偶位设定为“恒1”或“恒0”,则若在发送地址帧时将奇偶位设定为“恒1”,在发送数据位时将奇偶位设定为“恒0”,便可以在PC机上模拟51系列单片机的多机通信持点,从而直接利用这种特点实现它们之间的主从多机通信。

主机和从机遵循主从原则,主机用呼叫方式选择从机,数据在主机和从机之间双向传递,各从机之间的相互通信需通过主机作为中介。主从机之间还应传送一些供它们识别的命令和状态字,如以00H表示主机发送从机接收命令,以01H表示从机发送主机接收命令等。

PC主机通信程序的实现

对PC机UART的编程是主机通信程序的核心。一般可以通过两种方式实现对UART的操作。一种是直接访问底层地址实现对LCR、LSR、波特率因子寄存器的操作,这种只适用于Windows9X.在WindowsNT环境下系统禁止用户程序直接访问硬件和物理地址,因此该不可取。具体过程是通过调用标准通信函数inp()、outp()实现的。另一种方式是通过通信控件或WindowsAPI函数间接对LCR、LSR、波特率因子寄存器进行相关操作。因此本系统也使用MSComm控件,而WindowsAPI函数更适合在多现程领域应用。

结束语

实践证明单片机与MXA2500GL系统性能可靠,大大的节约了成本,因此该系统在汽车整车及零部件的测试与诊断过程极具推广价值。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭