- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于C8051F340数据采集系统的设计
4 软件设计
系统的软件部分包括单片机固件和上位PC 机客户端程序。单片机固件主要负责单片机初始化及与上位机的通信准备, 而客户端程序则负责对固件中相应控制的调用, 实现数据的传输控制、数据保存以及故障的预警。
4. 1 单片机固件( firmw are)
单片机固件采用K eil uV ision3软件进行编写,由主程序, AD数据转换, USB通讯三个模块组成。
主程序负责初始化单片机的各个端口和功能模块, 设置相应的IO 端口为数据输入端口, 完成各项初始化后通过vo id USB_API_TEST _ISR ( void)函数进入USB中断服务, 在中断服务中通过调用Get_Interrupt_Source( )函数获得USB 中断源。然后根据不同的入口情况, 来进行相应的处理。比如收到初始化命令时, 复位单片机内的各个状态参数。
AD数据转换模块主要负责AD转换时的转换时间间隔、采样精度的设置。C8051F340单片机的AD转换启动有6 种触发方式, 由ADC0CN 中的ADC0转换启动方式位( AD0CM2..0)的状态决定采用哪一种方式。本系统则是是通过单片机中的定时器2的每次计时溢出来触发AD 转换。为确保每次定时器触发AD 转换时上一次数据转换完全结束, 因此定时器2溢出后到下一次计时溢出的时间间隔( Tcon t)必须要大于AD 转换时间, 才能保证每次AD转换的完整进行。AD 转换时间由建立转换时间( Tsettle)和采样时间( Tsample)构成。图3所示为在差分方式下等效的AD 转换的输入电路。对于一个给定的建立精度( SA ) 的系统中, 所需要的ADC 建立时间( Tsettle)可以用方程1来确定。而采样时间( Tsamp le)通过查询技术手册得知需要10个SAR 时钟。Tcon t则必须要满足式( 2)和式( 3), 才能满足设计要求。
图3 AD 转换等效输入电路。
其中: SA 是建立精度, 用一个LSB 的分数表示(例如, 建立精度0. 25对应1 /4LSB ); t为所需要的建立时间( Tsettle), 以秒为单位; n为ADC 的分辨率,用比特表示。Rtota l为AMUX 电阻与外部信号源电阻之和; C samp le为ADC采样电容:
其中: K 为定时器2溢出后重载的计数数值; clk 为系统时钟频率。
USB通讯模块则设置单片机与主机的数据传输模式。根据USB 通信协议要求, 设置相应寄存器来配置USB中端点0与端点2跟上位主机进行数据通信, 其中端点0负责与主机的控制命令接收与响应, 端点2 负责将采集的数据传输到上位主机, 同时配置端点2在U SB0的FIFO 分配中256字节使用空间全部为数据输出。由于C8051F340 整合的是10位ADC控制器, 采集到的数据填充为16位数据, 以先低8 位, 后高8位将数据保存到系统的RAM 中, 而一次AD 转换能得到2个字节的数据, 因此为了每次数据上传时充分利用端点2的使用空间, 在ADC中断响应函数中添加一个变量i来检测进行转换的次数, 在进行完128次AD转换后通过调用B lock_W rite( )函数向主机发送数据。部分代码如下:
来源:21IC电子网
上一篇:实现基于TCP/IP的多串口转换网关
下一篇:智能移动终端的数据传输信源加密设计