首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于ADS1158和DSP的高精度数据采集系统设计3

基于ADS1158和DSP的高精度数据采集系统设计3

2 软件设计
   
本方案采用的是Microchip公司的数字信号控制器dsPIC30F4011,主要利用其强大的计算能力和高速的指令周期,保证控制器能够快速地响应ADS1158的数据请求。软件分为DSP初始化、ADS1158初始化、数据读取、数据发送四部分。
2.1 软件初始化
   
定义SystemInitialize()初始化函数,主要工作完成对DSP的定时器、I/O口输入输出、SPI、CAN、外部中断等功能的初始化。定义了ADS1158 Initialize()初始化函数,通过SPI传输数据,完成对ADS1158的初始化。其寄存器地址与值的设置见表1。


2.2 数据读取与处理
   
完成上述设置后,ADS1158即会进入自动采集模式,以约100 Hz(16个通道)的频率进行扫描,并且每个通道得到采样值后会发送中断信号至dsPIC30F4011的外部中断,dsPIC30F4011对外部中断信号进行响应,读取当前通道采样值。
    根据ADS1158的数据组成定义,一个结果值由三个字节组成,第一个字节为通道号信息,第二、三个字节由16位的数据组成(如果是ADS12 58的话,数据由三个字节组成)。
    对三个数据进行解析,可以得到当前通道的采样值。其程序流程如图6所示。


    以上数据读取都是通过SPI实现的。在程序结构的设计中,建议数据读取和数据解析以及数据换算不要放在外部中断函数里面,在中断函数里置标志位,返回主程序处理。dsPIC30F4011的指令周期以及强大的计算能力,足以支持所有通道的数据读取以及数据处理功能。
2.3 通信功能
   
本方案采用CAN总线通信。与一般的通信总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性。系统自动以100 Hz的频率向外发送数据,为了能够获得高精度的100 Hz,同时不干扰其他程序韵正常运行,下位机采用了设定系统时基的机制。下位机软件在系统内部定义了一个1 ms的时基(选择定时器1为1ms溢出产生中断),还有一个发送时基累加寄存器。
    在时基(定时器1)中断函数中,对发送时基累加寄存器加1,并对该寄存器进行判断,如果大于9,则清零寄存器,置标志位,回主程序执行发送数据函数。此外,可以定义很多其他功能的时基累加寄存器,通过判断累加器的值,来实现程序的步进运转。

3 结论
   
本方案构建的数据采集系统具有很强的实际应用价值,文中介绍到的硬件组成以及关键电路的设计和软件设计思路等,对开发者都具有很强的参考意义。
本人过去、现在以及将来都不认识楼主,且自古以来与楼主无利益关系。楼主表述之事与本人无关,
返回列表