当前位置:首页 > 工业控制 > 工业控制
[导读]【整体设计概述】:主要是设计一套无线传输设备产品,负责压力、温度、液位、角度、速度值的传输与处理。输入是4-20mA的标准电流信号,所要设计的产品把这种模拟信号转换成数字信号,并处理成相应的标准数值,通过无线

【整体设计概述】:

主要是设计一套无线传输设备产品,负责压力、温度、液位、角度、速度值的传输与处理。

输入是4-20mA的标准电流信号,所要设计的产品把这种模拟信号转换成数字信号,并处理成相应的标准数值,通过无线传输把其发送至PLC的CAN总线上。

采用先进安全的无线射频技术,无线射频技术(RF)是一种可通过无线电讯号识别特定目标并读写相关数据,而无需通过在系统与特定目标之间建立机械或光学接触来识别信号的通信技术。射频识别技术是一项利用射频信号通过空间耦合(交变磁场或电磁场)实现无接触信息传递并通过所传递的信息达到识别目的的技术。本产品就是利用这种先进的技术实行数据传输。

传输协议采用自主研发的传输协议,可靠性高,经加密处理,可以防止数据被监听。

【系统流程图】:

 

【原理设计说明】:

本产品主要是由ATMEGA16L单片机、CAN控制器SJA1000、CAN收发器TJA1050、VM1100M无线模块、LM2596-5、AS1117-3.3稳压电源以及一些基本的外围电路构成。

1、电源部分

本产品外接电源采用DC+24V供电,通过LM2596-5到5.0V,AS1117-3.3稳压电源至3.3V达到各部分所需供电电压。

2、CAN发送接收

通过ATMEGA16L单片机发送给CAN控制器SJA1000,经过TJA1050收发器发送到CAN总线上。

3、各数据无线发送

各无线数据通过VM1100M无线模块433MHZ频段将无线数据传送至无线收发控制器。

【功能说明书】:

1、写入串口ID功能

连接硬件学码设备,打开串口ID下载器,打开串口,填入需下载的ID号,点击“写入”,会显示“下载成功”。

2、指示灯状态功能

左起第一个红灯D1为电源灯,当电源正常接通时,该灯会长亮。

中间的D2灯为CAN数据发送指示灯,该灯有两个功能:

(1)、该灯闪烁代表CAN数据正在发送。

(2)、灯的闪烁频率代表CAN数据上报的频率。

最后一个指示灯闪烁表示给节点下发频点。

【部分原理图】:

CC1101RF电路 SJA1000CAN电路 mega16MCU电路

【主要程序文件】:

//******************************SJA1000初始化***********************************

void SJA1000_Init(void)
{
    uchar i,a,b,i_temp=0,TempData,j_temp=0;

    CLI();
SJA100HardWareRest();                   //硬件复位
    //Read_SJA1000(CAN_IR);                 //读中断寄存器,清除中断位
SJAEntryResetMode();                    //进入复位模式
DelayUs(5);
SR_status = Read_SJA1000(CAN_SR);          //读状态
//进入Pelican模式
    Write_SJA1000(CAN_CDR,0xc0);        //选择Pelican模式,CBP=1,激活RX0; 关闭TX1中断与时钟输出。
  SR_status = Read_SJA1000(CAN_SR);          //读状态
DelayUs(5);

//自检模式,自发自收检测
//Write_SJA1000(CAN_MOD,0x04); //配置模式寄存器,双滤波,自发自收

    //接收所有报文  
    Write_SJA1000(CAN_AMR0,0xff);    //配置验收屏蔽AMR0=0FFH
    Write_SJA1000(CAN_AMR1,0xff);    //配置验收屏蔽AMR1=0FFH
    Write_SJA1000(CAN_AMR2,0xff);    //配置验收屏蔽AMR2=0FFH
    Write_SJA1000(CAN_AMR3,0xff);    //配置验收屏蔽AMR3=0FFH
    Write_SJA1000(CAN_ACR0,0x00);    //配置验收代码ACR1=0:
Write_SJA1000(CAN_ACR1,0x00);    //配置验收代码ACR1=0:
Write_SJA1000(CAN_ACR2,0x00);    //配置验收代码ACR1=0:
    Write_SJA1000(CAN_ACR3,0x00);    //配置验收代码ACR3=0;


Write_SJA1000(CAN_TXERR,0x00);  
Write_SJA1000(CAN_RXERR,0x00);
Write_SJA1000(CAN_ECC,0x00);
Write_SJA1000(CAN_RBSA,0x00);

//设置波特率(16MHZ晶振,125Kb)
    Write_SJA1000(CAN_BTR0,0x03);    //配置总线定时--1255kbps    0x6e  03
    Write_SJA1000(CAN_BTR1,0x1C);                         //     0xff  af
    Write_SJA1000(CAN_OCR,0xaa);     //配置输出控制
    Write_SJA1000(CAN_EWLR,0xff);    //配置错误报警限制为255
Write_SJA1000(CAN_CMR,0x0c);     // 清楚数据溢出和释放接收缓冲器

// 退出复位模式,进入工作模式
SJAQuitResetMode();
SR_status = Read_SJA1000(CAN_SR);          //读状态
//Write_SJA1000(CAN_TXB+4,ID3);            //配置发送缓冲区的ID3-
   // Write_SJA1000(CAN_IER,0x01);            //配置SJA10000中断-错误报警/发送/接收中断  0x07
    Write_SJA1000(CAN_IER,0x81);             //使能SJA1000接收中断位,和总线错误中断位
    SEI();

}

//******************************SJA1000发送程序*********************************
void send_sja1000(void)
{   
    uchar s,i,canstatus,canstatus1,canstatus2,canstatus3,canstatus4;
//CLI();
canstatus  = Read_SJA1000(CAN_SR);          //读状态
    canstatus1 = Read_SJA1000(CAN_MOD);    //读模式
    canstatus2 =  Read_SJA1000(15);    //TX错误计数
    canstatus3 =  Read_SJA1000(14);    //RX错误计数
    canstatus4 =  Read_SJA1000(12);    //错误代码捕捉

   for( i=0;i<5;i++ );  
   {
    canstatus = Read_SJA1000(CAN_SR);
   }
   
   if((canstatus & 0x0C)== 0x0C)    //查询SJA1000是否处于接收状态,当SJA1000不处于接收状态时才可继续执行
   {                                //SR.3=0,发送请求未处理完,等待直到SR.3=1
       goto SJA1000;                //SR.2=0,发送缓冲器被锁
   }
   else  
   {  
      LEDSysMode = 0;
      return;
   }

SJA1000:   
  
//发送数据写进发送缓冲区中
  WriteSJARegBlock(16,Send_CAN_Info_ID,5); //扩展帧,向发送缓冲区写入5个识别码
     Write_SJA1000(21,DataText[0]);     //扩展帧,向发送缓冲区写入8个数据
  Write_SJA1000(22,DataText[1]);
  Write_SJA1000(23,DataText[2]);
  Write_SJA1000(24,DataText[3]);
  Write_SJA1000(25,DataText[4]);
  Write_SJA1000(27,DataText[6]);
  Write_SJA1000(26,DataText[5]);
  Write_SJA1000(28,DataText[7]);
// 启动发送
     Write_SJA1000(CAN_CMR,0x01);//使能发送请求,发送数据。(0x03,单次发送,有错误不重新发送;0x01发送请求命令,当错误时可重发;0x10产生一次自接收性质的报文发送)
     SEI();
  DataText[7]=0x00;
     while((canstatus&0x08) ==0)        //  检测是否发送完毕                                
     {
      canstatus = Read_SJA1000(CAN_SR);   //读状态
     }
      LEDSysMode = 1;
  
}
 

【总结】:

本系统主要是RF无线和CAN总线两大块,功能都能实现。部分代码如上所示,若网友希望进一步了解,可以站内信联系。

原帖地址:http://bbs.21ic.com/icview-584206-1-1.html 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

上海2025年9月5日 /美通社/ -- 由上海市经济和信息化委员会、上海市发展和改革委员会、上海市商务委员会、上海市教育委员会、上海市科学技术委员会指导,东浩兰生(集团)有限公司主办,东浩兰生会展集团上海工业商务展览有...

关键字: 电子 BSP 芯片 自动驾驶

推进卓越制造,扩大产能并优化布局 苏州2025年9月5日 /美通社/ -- 耐世特汽车系统与苏州工业园区管委会正式签署备忘录,以设立耐世特亚太总部苏州智能制造项目。...

关键字: 智能制造 BSP 汽车系统 线控

慕尼黑和北京2025年9月4日 /美通社/ -- 宝马集团宣布,新世代首款量产车型BMW iX3将于9月5日全球首发,9月8日震撼亮相慕尼黑车展。中国专属版车型也将在年内与大家见面,2026年在国内投产。 宝马集团董事...

关键字: 宝马 慕尼黑 BSP 数字化

北京2025年9月4日 /美通社/ -- 在全球新一轮科技革命与产业变革的澎湃浪潮中,人工智能作为引领创新的核心驱动力,正以前所未有的深度与广度重塑各行业发展格局。体育领域深度融入科技变革浪潮,驶入数字化、智能化转型快车...

关键字: 人工智能 智能体 AI BSP

上海2025年9月2日 /美通社/ -- 近日,由 ABB、Moxa(摩莎科技)等八家企业在上海联合发起并成功举办"2025 Ethernet-APL 技术应用发展大会"。会议以"破界•融合...

关键字: ETHERNET 智能未来 BSP 工业通信

传感器模块能实现便捷无接触的后备箱或侧滑门开启,适配各种车辆架构 该24 GHz雷达传感器可集成于保险杠或底盘上,并通过特定的手势或脚部动作触发响应 已为多家欧洲主流车企启动量产交付 德国布尔2025...

关键字: 传感器 BSP 触发 保险杠

以高效节能方案绘制AI算力绿色未来 上海2025年8月29日 /美通社/ -- 8月28日,台达受邀出席"2025中国智算产业绿色科技大会",全方位分享台达在智算领域的前沿洞见与绿色解决方...

关键字: AI 可持续发展 数据中心 BSP

淄博2025年8月29日 /美通社/ -- 8月26日至27日,TÜV南德意志集团(以下简称"TÜV南德")受邀参加由淄博市...

关键字: BSP 人工智能 信息安全 新加坡

北京2025年8月28日 /美通社/ -- 近日,北京亦庄创新发布消息,北京经济技术开发区(简称北京经开区,又称北京亦庄)以"高效办成一件事"为抓手,围绕企业信用修复的全流程全环节,打造经开区特色的&...

关键字: 数字化 集成 BSP 数据共享

深圳2025年8月27日 /美通社/ -- 2025年8月27日,华测检测认证集团股份有限公司(简称CTI华测检测,股票代码300012)与北京戴纳实验科技股份有限公司(简称戴纳科技)在华测集团上海基地完成战略签约,双方...

关键字: TI AI BSP 智能化
关闭