瓦斯监测系统分站设计论文.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
瓦斯监测系统多从机分站设计 李在住 李金强 (山西晋城煤业集团技术研究院 山西 晋城 048006) 摘要:该文在分析了成庄矿的瓦斯管网监测系统面临布点多距离远的前提下,提出了多从机远距离通讯的智能分站,并对该型分站进行了硬件和软件的初步设计,基本实现了预想目标。 关键词:监测系统;多从机;分站 1引言 分站的功能是为满足较多数量传感器和上位机通信而设计的数据中继装置。煤矿井下传感器数量众多,且传输距离一般都在1公里以上,本设计是为解决井下多测点远距离传输问题进行的。 2装置结构设计 2.1装置设计框图 为满足分站数据中继功能,结合井下巷道距离远的特点,通讯方式对传感器有CAN总线,对上位机有以太网,硬件所需模块设计如下 图1系统组成框图 2.2装置硬件简述 本装置采用STM32F103VET6 32位、72Mhz、QFP100 封装、64K片内SRAM 、512K片内FLASH单片机,它是为满足高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核。外围电路由 一块480x272彩色显示器(ILI9325控制器)模块板上带SPI 控制方式的触摸屏控制电路,采用了PWM 控制信号控制背光的明暗; 5V供电电路提供3.3V 的固定电压输出; RTC实时时钟; TJA1050CAN总线控制器,CPU 的CAN_TX(P96)、CAN_RX(P95)通过TJA1050 与CAN 插座连接; MICRO SD卡接口,卡座接口为8脚与CPU的SD卡接口连接; 6个按键电路、3个LED灯、1个蜂鸣器 ENC28J60以太网控制器,CPU通过SPI 总线方式,控制ENC28J60 来完成网络功能。 .1.1分站与从机(节点)CAN总线通讯的实现 分站和从机的物理连接是通过从分站CAN插座引出一条双绞线,各个从机分别按照CAN_H/CAN_L端挂在上连接的。 程序设计: CAN模块初始化(CAN驱动) 首先进行CAN控制器,其次进行CAoid CAN_TxSocket( CAN *can_Socket ){ 声明省略....... 初始化省略....... for( i =0; iTxMessage.DLC; i++){ TxMessage.Data = can_Socket-u8_data; } CAN_Transmit(CAN1, TxMessage); CAN_ITConfig(CAN1, CAN_IT_FMP0, DISABLE); interrupt handling } 给不同的节点发送数据时,只需定义节点的ID,将所发数据存到data数组里,然后调用CAN_TxSocket()函数即可。 数据接收 从图3可以看到一个分站连接了3个节点,以T形方式网络连接,主机区别这些从机 发送的信息是通过CAN控制器中过滤器来实现的,首先给每个分机定义一个ID(从机报文标识符),那么主机在接收到分机发送的数据后,通过ID 号判别接收到的信息是哪个从机发送的。 接收函数放在中断程序中处理: void USB_LP_CAN_RX0_IRQHandler(void){ 声明省略...... 初始化省略...... for( i=0;i8;i++){ RxMessage.Data[i]=0x00; } CAN_Receive(CAN1, CAN_FIFO0, RxMessage); R_Len=RxMessage.DLC; if((RxMessage.StdId==0x01)(RxMessage.IDE==CAN_Id_Standard)){ //读节点1的 数据 for( i=0;iR_Len; i++){ CAN_ReceiveBuff = RxMessage.Data; } 其他节点同理省略 ........... } 数据处理 通过过滤器按ID过滤报文,将不同ID的报文放到不同的数据缓冲区,然后将ID和节点对应后,提取数据缓冲区中瓦斯的浓度、温度、流量、压力参数显示到对应的编辑框中。代码如下: if(CAN_S_Link1==1){ CAN_S_Link1=0; BUTTON_SetBkColor(BUTTON[0],0,GUI_GREEN);//节点1连接成功指示绿色 }

文档评论(0)

smdh + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档