联合收获机凹板间隙调节系统研究
2 CAN通信模块
本文引用地址:https://www.eepw.com.cn/article/271644.htm 本系统选用TJA1050芯片作为CAN收发器设计的智能节点,该芯片提供了CAN控制器与物理总线之间的接口以及对CAN总线的差动发送和接收功能,跟光耦TLP113共用,实现信号的隔离。TJA1050 符合ISO 11898 标准,因此它可以和联合收获机上其他遵从ISO 11898 标准的收发器产品协同操作[4-5],其硬件设计如图4。
3 软件设计
为了达到程序的简单明了、易于阅读、调试方便、采样率高及可靠性好的目的,采用结构化的程序设计方法。本研究采用的是MAPLAB IDE V8.76作为控制系统的软件作为开发环境,并采用Hitech公司开发的PICC编译器进行编写、调试和编译程序。主要介绍CAN模块以及PWM模块的初始化程序,具体实现如下:
////////// CAN /////////////
/////Fosc=10MHz,
/////CAN Baud 250K,Tbit=4uS,BRP = 0x01
////TQ = [2*(1+BRP)]/Fosc=400ns
////Nominal Bit Rate = 10TQ,Sync_Seg=1TQ,Prog_Seg=3TQ,Phase_Seg1=3TQ,Phase_Seg2=3TQ
////SJW = 1TQ
voidCAN_Init(void)
{
TRISB &= 0xFB; ///设置CANTX/RB2输出
TRISB |= 0x08; ///设置CANRX/RB3输入
/////
ECANCON = 0; //模式0
CANCON = 0x80; //请求配置模式
while((CANSTAT & 0x80) == 0) //是否进入配置模式
{
NOP();
}
BRGCON1 = 0x01; //SJW = 1TQ,BRP = 0x01,TQ=(2*2)/Fosc波特率控制寄存器1
BRGCON2 = 0x92; //Prog_Seg = 3TQ,Phase_Seg1 = 3TQ 波特率控制寄存器2
BRGCON3 = 0x42; //Phase_Seg2 = 3TQ 波特率控制寄存器3
///设置发送邮箱0标识符号
TXB0CON = 0x03; //设置为最高优先级TXPRI=11
TXB0SIDH = 0x80; //设置发送缓冲器0的标准标识符
TXB0SIDL = 0x40; //SID10:SID0=0x281 0x50 0x20 ;0x181 0x30 0x20
TXB0DLC = 0x08; //TXRTR = 0,设置数据长度为8个字节
///设置接收邮箱0的标识符和初始化数据
RXB0CON = 0x20;
////初始化接收滤波器0和接收屏蔽,
RXF0SIDH = 0x80;
RXF0SIDL = 0x40;
RXM0SIDH = 0xFF;
RXM0SIDL = 0x00;
RXF0EN = 1;
////
CIOCON = 0x20;
/////
CANCON = 0x00; /////请求进入正常操作模式
while((CANSTAT & 0xE0) != 0) ////是否进入正常模式
{
NOP();
}
//////
PIR5 = 0x00; ////清所有中断标志
PIE5 = 0x01; ////使能接收缓冲器0的接收中断
IPR5 = 0x01; ////设置优先级
}
pwm相关文章:pwm是什么
评论