首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
测试测量
» 带LCD人机交互功能的便携式高精度数据采集系统
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
带LCD人机交互功能的便携式高精度数据采集系统
发短消息
加为好友
Bazinga
当前离线
UID
1023230
帖子
5213
精华
0
积分
2607
阅读权限
70
在线时间
158 小时
注册时间
2013-12-20
最后登录
2015-10-22
金牌会员
UID
1023230
1
#
打印
字体大小:
t
T
Bazinga
发表于 2014-6-27 20:10
|
只看该作者
带LCD人机交互功能的便携式高精度数据采集系统
数据采集
,
测量
在许多传统行业中,高精度温度数据采集
系统是不可缺少的。近年来,随着高精度ADC价格的不断下降以及其功能的不断完善,研制廉价的多路、快速、高精度温度采集系统成为了可能。美国德州仪器公司(TI)推出的带24位ADC的
微处理器
MSC1210,特别适合于测量高精度温度、压力
传感器
等输出的
微弱信号
。本文以MSC1210作为测量、信号处理以及通讯的核心,设计了高精度温度采集系统模块。该系统测量通道易于扩充,测量精度高,可以快速地进行高精度数据测量。
系统总体方案设计
本系统的硬件部分主要由前端数据采集、处理电路和后端数据处理、LCD电路组成。两部分通过RS-232串行接口进行通信。系统的总体方案构图如图1所示。
数据采集部分的软硬件设计
硬件电路设计
数据采集部分的核心器件选用了MSC1210Y5。这主要是因为该微
处理器
具有24位的 ADC,其有效精度高于22位。其内部包含完整的前向通道(包括输入缓存器、模拟开关电路、可编程增益
放大器
和ADC以及数字滤波部分)和后向通道— DAC,这些都是完成测控系统的必须部分。此外,该处理器通过改变命令寄存器的方式对内部通道功能进行设置,用指令就可以选择输入缓存器、设置放大增益、控制通道开关切换、进行偏置校正等,使用非常方便。数据采集部分的电路结构原理图如图2所示。
本系统中两个核心芯片MSC1210Y5和 MAX3223的功耗都很低,因此,在设计中板上的
电源
(3.3V)由后端系统通过RS-232接口提供。除了RS-232接口的接线,以及接入J1、 J2插座的信号(8个AIN线、REF以及公共地)线外,本系统的硬件部分不再需要其它连接,使用非常方便。此外,设计时还在电路中预留了一部分接口线供以后扩展系统功能使用,包含了第二串行口以及四根可配置为SPI接口、中断输入和I/O端口的备用接口线。
软件设计
在基于此电路的高精度测温模块应用中,MSC1210Y5完成了微弱信号的多路切换、信号缓冲、编程放大、24位ADC、数字滤波、数据处理、信号校准以及串口通信等功能。MSC1210Y5包含2个串口,本设计中选取其中的一个串口用来与后端
人机交互
系统通信,负责接收后端发送的控制命令和控制参数以及发送前端采集、处理的数据。数据采集电路的程序主要任务是:控制内部的ADC的测量过程,读取转换的数据;与后端 (S3C44B0X系统)进行通信,读取上位机的命令和有关的控制参数,同时向上位机传送转换后的数据。数据采集电路的程序控制流程如图3所示。
串口开始接收上位机送过来的命令和数据时,将依次读到的后端系统的2字节串码(暂存在R6,R7)的控制字传送到MSC1210Y5内部寄存器ADCON1 和ADCON0,从而实现对ADC控制命令的写入。其后将ADCON3、ADCON2、ADMUX和PDCON寄存器的内部写入相应的命令和参数值,从而完成对MSC1210Y5内ADC的设置和启动。向后端系统发送数据时,由于ADC是24位精度,转换数据必须分为3个字节传送,即将寄存器1、2、3的 ADC转换结果依次通过送SBUF发送,同时在这个过程中还包含发送同步字符、CRC校验等过程。
嵌入式
GUI应用系统概述
该系统后端的硬件部分主要由三大块构成:以S3C44B0X为核心的系统板,集JTAG调试电路、系统
电源
、LCD接口电路的辅助板,以及LCD屏。
后端的软件部分也由三个部分组成:系统启动加载程序,嵌入式实时多任务操作系统mC/OS-II,和基于mC/OS-II的应用程序。根据系统应用的需要,其中基于mC/OS-II的应用程序主要包括串行口通信程序和基于mC/GUI的图形用户接口程序。
系统中的串口用于S3C44B0X控制器向前端数据采集部分发送控制命令和控制参数,并实时接收前端发送的采集数据,送由控制器处理和进行LCD显示。当操作系统mC/OS-II启动时,自动初始化串行口。由于应用程序是多任务系统,为了实时监测串行口信息,设计时在系统中单开了一个串行口扫描任务,从而可保证信息不丢失。
由于mC/GUI提供了源代码,在开发应用程序时,用户可以首先将核心文件、LCD驱动文件和需要的字体文件包含在自己的工程里,然后再根据内存设备、输入设备、空间和窗口管理部分等硬件的实际需要来具体开发。开发步骤如下。
(1) 按照实际需要,定制自己的mC/GUI开发环境。其中包括对mC/GUI目录的筛选,以及目录中文件的筛选;
(2) 指定硬件设备的地址,编写接口驱动代码。这里需要修改LCDConf.h文件;
(3) 编译、连接、调试子程序;
(4)修改子程序并测试,增加需要的功能;
(5)若开发多任务应用,则需要修改GUI_MAXTASK和GUI_OS宏,实现mC/GUI与操作系统的结合;
(6)编写自己的应用程序。
由于mC/GUI不支持ARM7
处理器
S3C44B0X,因此,要把mC/GUI移植到系统平台上,需要自己完成mC/GUI在系统硬件平台上的各种驱动,具体包括S3C44B0X中内置的LCD控制器的正确初始化,以及画点、画线、填充等LCD驱动函数的编写等。
LCD
控制器初始化:S3C44B0X LCD控制器上的正确初始化包括各种控制寄存器的正确配置以及显存的正确设置与映射。其中显存的映射是将S3C44B0X专用LCD DMA的源地址设为显存起始地址值,该值是在rLCDSADDR1中配置。此外,LCD控制器还需对REGBANK中的其他可编程寄存器进行编程,以控制相应的寄存器值,并确定垂直/水平象素、数据接口的数据宽度、接口时间及刷新率等。
LCD驱动函数编程:在LCD的驱动函数中,最底层的驱动函数是画点函数和取点函数。在mC/GUI中显示字、图形都与这两个函数有关,它们直接与显存通话。为了显示出字符和位图,还须参考uC/GUI的 LCDMemC.c,写DrawBitLine1BPP、DrawBitLine2BPP和DrawBitLine4BPP函数,并配置 GUIConf.h和LCDConf.h中的常数。完成了上面的各个驱动函数后,就可以采用mC/GUI的Demo程序对所移植的mC/GUI进行测试了。
结语
采用TI公司的
微控制器
MSC1210Y5开发的高精度数据采集系统,采集精度高,抗干扰能力强。具有较高的应用和推广价值。
收藏
分享
评分
the king of nerds
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议