多通道数据实时采集系统设计
引言
现代工业生产中,环节众多、流程复杂、数据不断更新、随着生产工艺改进的迫切要求,需要研制新型数据实时采集系统即多通道数据实时采集系统。基于stc11f48xe具有完全兼容8051系列单片机、含有flash技术主导的存储器、可反复进行单片机控制试验等优点,本文选用它作为数据采集和发送的cpu。在和本地的通讯中采用rs485标准,相比rs232大大提高了通讯速率、传输距离和多机连接的能力,这样使本文设计的数据采集系统具有抗干扰性强、响应速度快的优点,同时可扩展为多机通信。
系统总体方案设计
根据系统要求,整个系统由主要以下几个部分组成:旋转变压器、ad2s1200、电源模块、stc11f48xe、485通信模块。系统框图如图1所示。
系统的工作原理为:旋转变压器绑定在电机转轴上,通过ad2s1200给的励磁信号产生正余弦信号送回给ad2s1200,ad2s1200对正余弦信号进行处理后得到转轴的位置,把这个数据以入堆栈的方式存进stc11f48xe的ram中,当上位机请求读取数据量时,单片机通过自定义的协议把数据传送给上位机。
硬件电路设计
a/d转换模块
模拟数据量通过旋转变压器采集,通过ad2s1200芯片完成模数转换。ad2s1200是ad公司推出的12位带参考振荡器的r/d转换器,具有以下主要特点:(1)并行和串行输出方式;(2)系统错误检测;(3)绝对位置和速度输出;(4)差分输入;(5)最大跟踪速度为1000rps,可仿真12位分辨度的增量式编码器;(6)与dsp和spi接口标准兼容。由于本文设计的是多路数据采集,所以我选用串行输出方式。ad2s1200串行输出时序图如图2所示。
如图2所示,在sample信号拉低t2时间后,cs信号即片选信号被拉低,sample信号必须保持t1时间的低电平,rdvel信号我们选择给以高电平,代表输出信号是位置量。这时在so口会有数据输出,要读出so的数据还需要rd为低电平,且在sclk的下降沿,这样读出的数据比较稳定。读串行数据的时间要求如图3所示。
单片机和通信模块
单片机采用宏晶科技的stc11f48xe。8051单片机在读取外部状态时i/o口必须先置高。传统8051单片机执行i/o口操作,检测高低电平变化以及读外部状态都是12个时钟周期,因此在读取外部状态i/o时相应的i/o端口已经是高电平。而stc11f48xe执行相应的操作只需要4个时钟周期,在执行完由低变高的指令后,需要再过一个时钟周期该i/o口才会变高,这时可以通过增加两个空操作延时指令来满足读状态条件。单片机控制电路和通信电路如图4所示。
单片机在数据通信时经过一个总线收发器74hct245和一个施密特触发器74ls14到达rs485的驱动电路,通过485接口和上位机进行数据传输。其中总线收发器是为了加强信号,施密特触发器是为了修正波形。lbc184是常用的485通信芯片同时完成将ttl电平转换为rs485电平。
电源模块
电源分成了数字电源和模拟电源。因为数字信号的高频噪声很大,如果模拟地和数字地混合的话,就会把噪声传到模拟部分,造成干扰。
软件设计
程序流程图如图5所示。数据采集系统的软件主要包括主程序、数据采集、数据入栈出栈、中断处理。在完成串口等初始化后,程序进入数据采集,在数据采集时要关闭串口中断,不然会引起数据的不正确,采集完数据后打开串口中断。若没有接收到串口中断,程序就会一直采集数据并把数据入栈,当栈满的时候就会清空数据栈。接收到串口中断时,就把栈顶数据发送给上位机。
实验结果
让旋转变压器停在某处,测得此时的so和sclk如图6(一组数据放大后的波形)所示,上面的图形代表so,下面的图形代表sclk。从图6我们可以读出这组数据为1001001111011111,转换成十六进制即是93df。
利用串口助手以中断的方式从单片机取得数据如图7所示,从图7可看到收到的数据为93df,和从示波器上读出的数据一致,由此推断出单片机能正确的存入和上传数据,达到了预期的效果。
结束语
该系统具有高实时性,较强的抗干扰能力,占用空间小方便应用于嵌入式等特点。作为一种多通道的实时数据采集系统,它不仅可以采集位置量还可以采集速度,同时也能方便地由四通道扩展到八通道、十二通道等,可以广泛地应用于工业现场中。
文章版权归西部工控xbgk所有,未经许可不得转载。