基于msp430单片机的数据采集系统设计内容摘要:

基于 MSP430 的单片机数据采集系统设计 10 图 38模拟量采集 由 图 37 所示, 第 1路信号采集了数字量的温度;第 2路信号采集了粉尘的浓度;第 3路信号采集了空气湿度;第 4 路采集了空气的流量;第 5路完成了数字量的温度采集;第 6 路完成了对空气粉尘浓度的采集;第 7路完成了对空气湿度的采集;第 8路完成了对空气流量的采集。 由图 38 所示 ,采集电路通过一个电阻将电流信号转换成电压信号,为了提高采集的进度,需要采用高精度的电阻,这里采用的是精 度为 1%的电阻。 电路中采用二极管作为 ESD 保护电路,考虑到干扰问题,采用电容进行滤波处理,增加采集电路的抗干扰问题 , 数字量采集电路部分设计与此类似。 串口通信电路部分设计 该系统实现串口模块主要是与上位机进行通信,单片机系统将采集到的数据送到上位机进行处理,从而减轻单片机系统的处理负担。 由于单片机与上位机进行通信时接口电平不同,因此需要进行接口转换,这里采用 SP3220 芯片来完成接口电平的转换。 SP3220 芯片与一般的 RS232 芯片在使用上基本相同。 如图 39所示 为 串口通信 的框图。 图 39串口通信框图 MSP430 单片机 SP3220 PC 基于 MSP430 的单片机数据采集系统设计 11 芯片 选择 SP3220 是一款低功耗的 RS232 驱动芯片,该芯片有以下特性: ( 1) 宽电压供电,供电电压为: — ; ( 2) 上传速率可达 235Kbps; ( 3) 低功耗的电流为 1uA; ( 4) 增强性 ESD 规范。 为了 便于硬件电路的设计, 下面图 310给出该芯片的管脚图 : 图 310 SP3220芯片图 由图 310 可以看出,该芯片具有 16 个管脚,下面是具体的管脚功能。 EN/:接收使能管脚 ; SHDN/:低功耗控制管脚 ; C1+、 C1:电压增倍的充电电容的正极和负极 ; C2+、 C2:倒置充电电容的正极和负极 ; V+、 V:由充电电容产生的 的正极和负极 ; Vcc:电源管脚 ; GND:接地管脚 ; T1OUT:RS232 驱动的输出 ; T1IN:TTL/CMOS 的输入 ; R1OUT:TTL/CMOS 的输出 ; R1IN:RS232 的输入。 根据 系统 需求 选用了 SP3220 芯片的 SHDN/、 T1OUT、 T1IN、 R1OUT 和 R1IN五个 管脚。 基于 MSP430 的单片机数据采集系统设计 12 串口通信 的电路图 图 311串口通信的电路图 由图 311 所示 ,通过一个 上拉电阻 R208 将 SHDN/管脚拉高,使该芯片一直处于工作状态,如果系统需要处于低功耗状态,也可以通过单片机来控制该管脚,工作的时候将该管脚设置为低电平,需要处于低功耗的时候将该管脚设置为高电平,这样很容易实现控制。 在管脚 C1+、 C C2+、 C V+和 V分别放置 的电容实现充电作用,满足相应的充电泵的要求。 管脚 T1OUT、 TIN、 RIOUT 和RIN 分别是 232 转换的输入输出脚,实现单 片机的 TTL电平与上位机的接口电平的转换。 考虑到减小电源的干扰,还需要在芯片的电源输入腿加一个 的电容来实现滤波,以减小输入端受到的干扰。 基于 MSP430 的单片机数据采集系统设计 13 4 基于 MSP430 单片机采集系统软件开发 该系统 采用的开发环境是 IAR Embedded ,Embedded Workbenchfor MSP430 是 IAR Systems 公司为 MSP430 微处理器开发的一个集成开发环境。 IAR Embedded Workbench 介绍 IAR Embedded Workbench 是一种用于开发应用各种不同的目标处理器的灵活的集成环境。 它提供一个方便的窗口界面用于迅速的开发和调试。 Embedded Workbench 支持多种不同的目标处理器,使用项目模式组织应用程序。 它有如下一些特点。 ( 1)通用性 a) 可以在 Windows 环境下运行; b) 分层的项目( Project)表示; c) 直观的用户界面; d) 工具与编辑器全集成; e) 全面的超文本帮助。 ( 2) 编辑器 a) 可以同时编辑汇编和 C 语言源文件; b) 编辑汇编和 C 语言程序的句法用文本格式和颜色区别显示; c) 强有力的搜 索和置换命令,而且可以多个文件搜索; d) 从出错列表直接跳转到出错的相关文件的相关语句; e) 可以设置在出错语句前标志; f) 圆括号匹配; g) 自动缩进,可以设置自动缩进的空格; h) 每个窗口的多级取消与恢复。 IAR Embedded Workbench 开发步骤 第一次使用程序编写调试一般需要经过创建工作站、创建并保存工程、创建或加载源文件、保存工作站、设置工作环境(目标芯片、调试方式、仿真器接口类型、工程编译连接和调试七个步骤。 第一步:创建新工作站 打开 IAR Embedded Workbench。 单击: “开始”、“程序”、 IAR Systems、 IAR 基于 MSP430 的单片机数据采集系统设计 14 Embedded Workbench For MSP430 V3,自动创建一个新的工作站,出现如 41所示的界面。 图 41第一次进入 Embedded Workbench 界面提示如下: Create new project in current workspace:在新工作站中创建新的工程。 Add existing project to current workspace:添加已经存在的工程到当前的工作站中。 Open existing workspace:打开已经存在的工作站。 Example workspace: 打开示例工作站。 根据您的具体情况选择上述 4个选项之一。 第二步:创建并保存工程 单击选项中 Create new project in new workbench。 出现图 42 界面。 图 42 创建新工程 基于 MSP430 的单片机数据采集系统设计 15 选择工程类型( Empty project、 asm、 C、 C++或 xternally built executable),若选择的工程类型为 Empty project,单击“ OK”按钮,出现图 43界面,选择保存路径,同时输入工 程文件名(如 test),单击保存,一个工程就建立完成了。 图 43 保存新工程 第三步 :创建一个新工程文件 点击菜单 ProjectCreat New Project...如图 44所示 ,弹出对话框如图 45所示 ,因为我们所使用的开发语言是 C,所以选择 C结构下的 main,点击 “OK” 将弹出工程文件保存路劲的对话框如图 46所示,选择要保存的路径,填上新建的工程名称,点击 “ 保存 ” 按钮将弹出如图 47所示的界面 ,在 动生成的 include“ ” Void main(void) { WDTCTL=WDTPW+WDTHOLD。 //Stop watchdog }。 修改后如图 48所示 .然后点击左上角的 save all菜单如图 49所示,弹出保存工作区间 对话框如图 410所示,在对话框中设置好工作区间的保存路劲及工作区间的名称,点击 “ 保存按钮保存退出,返回图 48所示的界面。 基于 MSP430 的单片机数据采集系统设计 16 图 44 新建工程 图 45 选择开发语言创建 main函数 图 46 设置工程保存路径及工程名称 基于 MSP430 的单片机数据采集系统设计 17 图 47 新建的工程面板 图 48 修改后的 图 49 点击 save all保存 基于 MSP430 的单片机数据采集系统设计 18 图 410 保存工作区间 第四步 :编辑代码 ,根据需要往工程中加入自己的 C文件和 H文件件。 第五步 :设置编译选项。 代码编辑好以后,在工作面板左边,右键点击工作区间里的工程名称(我的工程名称为 ),选择 Options...(如图 411所示 ),弹出如图 412所示的 Options选项卡,根据我们的器件设置相关的选项卡,完成后点击 “OK” 退出。 图 411 打开工程的 Options选项卡 基于 MSP430 的单片机数据采集系统设计 19 图 412 设置 Options选项卡 第五步 :编译工程 点击图 413中红圈内的 “Compile” 和 “make” 对工程进行编译。 注 :pile只能编译单个文件, make将会对整个工程文件进行编译和链接最后生成可执行文件(后缀为 .d43) 图 413 编译工程 第六步 :点击图 413中红圈内的 debug按钮,可编译生成的可执行文件下载到430单片机内部 flash中,可以在线使用 JTAG接口单步、多步调试或者设置断点调试,也可以关掉调试窗口 , 复位单片机后让其自动运行。 至此,整个开发流程完毕。 发设计 本系统 采用模块化的设计思 想 , 软件 模块 主要包括模拟量采集模块、数字量采集模块、串口通信模块和主处理模块。 模拟量采集模块主要是单片机通过 A/D通道采集来自传感器的信号,将信号进行处理。 该模块主要涉及到 A/D 转换和定时器 A的操作,主要完成 8 通道模拟数据的采集,并且通过定时器 A来控制采集 基于 MSP430 的单片机数据采集系统设计 20 的频率,另外也设置一个标志来通知主程序已经获得新的数据,通过全局变量来实现与主处理程序实现数据的交互。 这部分程序采用中断服务程序实现,在定时器 A 里先停止 A/D 转换,读取数据后启动 A/D 转换,然后再等待下一次中断的到来。 数字量 采集主要是单片机通过的一般 I/O 口与数字采集电路进行连接,单片机通过一般 I/O 口来简单的读取数字采集量的状态,判断是高电平还是低电平。 数据采集的时间间隔通过定时器 B来完成,整个模块采用的是中断服务程序的结构完成。 串口模块主要是与上位机的通信,从而将采集到的数据送到上位机进行处理。 当接收到有数据时,设置一个标志来通知主程序有数据到来,当主程序有数据要发送的时候,设置一个中断标志进入中断发送数据。 主处理模块首先完成初始化工作,初始化后进入循环处理,在循环过程中主处理获得采集的模拟数据和数字量数据,并将得到的数 据发送到上位机。 下位机也接收来自上位机的的数据。 整个程序基于中断服务结构,为了实现中断程序与主程序之间的数据交互,通过设置一些全局变量和全局的缓冲区来实现,具体的流程图如图 414所示。 基于 MSP430 的单片机数据采集系统设计 21 图 414主流程图 通过流程图可以看出,主处理只负责简单的标志判断和设置标志,然后从指定的缓冲区读取数据或将数据放到相应的缓冲区,其他的处理由中断来处理,因此主程序需要和中断程序进行交互。 软件程序 整个软件设计包括初始设置、中置服务程序和 主 处理程序,下面对各个部分程序分别进行详细介绍。 初始化设置 初始化程序主要包括时钟初始化, A/D 初始化、串口初始化。 下面为 A/D初始化和定时器初始化的程序代码。 void Init_ADC(void) { 基于 MSP430 的单片机数据采集系统设计。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。