原创 传感器数据采集所需的ADC模块

2007-1-3 23:21 4617 6 7 分类: MCU/ 嵌入式

一.         MSP430模数转换模块<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


 


1.              ADC模块结构


   参考电压发生器,选择<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />(模拟电源正端)(模拟电源负端)


   模拟多路器,对多个信号进行A/D转换,为了共用一个转换内核,模拟多路器分时地将多个模拟信号接通,即每次接通一个信号采样并转换。MSP430ADC12配置有8个外部通道和4路内部通道,节点使用了A0A3通道,分别对应电压传感器,光强传感器,红外传感器,射频强度传感器


   具有采样和保持功能地12位转换器内核。


   采样及转换所需地时序控制电路。


   转换结果缓存,ADC12共有12个转换通道,设置了16个转换寄存器用于存放转换结果。


2. ADC12寄存器


ADC12有大量地控制寄存器供用户使用,可以根据实际需要通过软件独立配置ADC12的资源,从而灵活运用ADC12的各个功能模块。


(1).ADC12CTL0 转换控制寄存器0


 


   0位:ADC12    采样/转换控制位,在ENC=1,ISSH=0时设置SHP=1,ADC120变为1时启动A/D转换。


   1位:ENC      转换允许,转换控制寄存器的大部分操作只有在ENC=0时才可被修改。


   2位:ADC12TVIE  转换时间溢出中断允许位。


   3位:ADC12OVIE  溢出中断允许位。


   4位:ADC12ON   ADC12内核控制位。


   5位:REFON    参考电压控制位。设置位0,关闭参考电压


   6位:2.5      内部参考电压值选择,REFON=0时不使用。


   7位:MSC      多次采样/转换位,单通道单次转换时不起作用。


   811SHT0    采样保持定时器0,设置为0


   1515SHT1


 


(2). ADC12CTL1 转换控制寄存器1


0  ADC12BUSY  ADC12忙标志位。


   12位:CONSEQ  转换模式选择位,设置为0,单通道单次转换模式。


   3-4位:ADC12SSEL  ADC12内核时钟源选择,设置为SMCLK.


   5-7位:ADC12DIV   分频因子选择


   8位:ISSH       采样输入信号方向控制,设置为0


   9位:SHP        采样信号选择控制位,设置为1


   1011  SHS   采样信号触发源选择位,设置为1


   12-15位:CSSTARTADD   转换存储器地址位。


   


(3).ADC12MCTLx 转换存储器控制寄存器


0123位:INCH  选择模拟输入通道


4,5,6位:     SREF   参考电压选择位,设置为0


7位:         EOS   序列结束控制位,单通道单次转换时不用。


(4).ADC12IFG,ADC12IE,ADC12IV 中断标志寄存器


 


二.          Tinyos中的ADC12组件


Tinyos中提供了配置ADC12模块的三个组件


HPLADC<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />12Mtinyos-1.x/tos./plarform/telosb/HPLADC12M.nc


MSP430ADC12M(tinyos-1.x/tos./plarform/telosb/MSP430ADC12M.nc


ADCMtinyos-1.x/tos./plarform/telosb/ADCM.nc


改动后得ADC 模块绕过了ADCM组件,直接使用MSP430ADC12M提供的接口实现ADC转换功能。


 (1). HPLADC12M组件


HPLADC12M组件提供了对ADC所有配置,是Tinyos中直接控制硬件的最底层组件,可以通过调用HPLADC12M提供的命令对ADC12的所有寄存器进行设置,实现我们需要的功能。同时HPLADC12M通过自己提供的事件,把接受到的数据通知上层组件。HPLUART1M为上层组件提供了HPLADC12接口。


(2).MSP430ADC12M组件


   MSP430ADC12M组件是HPLADC12M的上层组件,通过HPLADC12M提供的HPLADC12接口,调用HPLADC12M的命令实现对硬件的控制,对寄存器进行了一些基本的设置。同时也为上层组件提供了StdControl MSP430ADC12Single接口,MSP430ADC12Multiple接口在单通道单次转换模式时不使用。


三.         编写可以同时获得四个通道数据的组件


MSP430ADC12M组件是设置为单通道单次转换模式,因此一次只能获得一个通道的传感器数据,为上层应用带来了不便。为了可以通过一个组件提供的命令分别获得多个传感器数据,编写了getsensedataM组件,包括getsensedataM.nc, getsensedataC.nc, Sensedata.nc.提供了Sensedata接口,可以同时获得几个传感器的数据。

文章评论1条评论)

登录后参与讨论

用户71098 2008-5-19 17:20

我也没见过,呵呵

用户1275742 2008-5-18 21:47

国内一些做测试仪表的制造商有在大量用USB接口吗?

用户107688 2007-2-13 21:18

最近在做tinyos的项目,刚开始看,很多不懂,想问一下楼主在tiny1.1.0版本中,mica2平台下关于mac协议的组件是哪些啊,具体功能要是再说一下就更好了
多谢回复
相关推荐阅读
用户1177906 2007-10-27 21:07
又一篇
最近都在忙自己的课题和毕业的事,好久好久都没有管理自己的blog了。大家提的问题都没有回复真是抱歉。以后有什么需要一起交流的东西,可以给我发邮件。邮件地址:leiyang1983@163.com....
用户1177906 2007-04-22 14:42
回复
你的板子是什么板子?买的现成的节点,还是自己的板子?编译Blink时用的是什么平台?好像每个平台下,三个LED灯的管脚部太一样。可以看看各个平台下对应的hardware。h文件,看看灯的管脚是哪个?如...
用户1177906 2007-03-26 13:46
新年第一篇
新学期刚开始事情比较多,最近又忙于开题,好久都没有写了。好多网友提出的问题也没有解答,很是抱歉。以后会经常写写,尽力回答大家提出的问题。多和大家交流...
用户1177906 2007-02-10 16:31
安装包
在Windows下的安装包下载地址:http://www.tinyos.net/dist-1.1.0/tinyos/windows/。下载tinyos-1.1.11-3is.exe.这个安装包是cyg...
用户1177906 2007-01-30 12:38
tinyos核心
tinyos核心其实就是system文件夹下的sched.c文件。这个文件规定了tinyos中任务的执行流程。system文件夹下的其它文件就是tinyos基本构成。...
用户1177906 2007-01-27 22:59
TinyOS代码
最近比较忙,一直在用TOSSIM做仿真。很久都没有写了。刚看到一条求助。就谈谈自己入门的一点点经验。    首先得看看tinyos的tutorial,前几个lesson得仔细的看,这样会对tinyos...
我要评论
1
6
关闭 站长推荐上一条 /2 下一条