聯(lián)合收獲機(jī)凹板間隙調(diào)節(jié)系統(tǒng)研究
2 CAN通信模塊
本文引用地址:http://www.ex-cimer.com/article/271644.htm 本系統(tǒng)選用TJA1050芯片作為CAN收發(fā)器設(shè)計(jì)的智能節(jié)點(diǎn),該芯片提供了CAN控制器與物理總線之間的接口以及對(duì)CAN總線的差動(dòng)發(fā)送和接收功能,跟光耦TLP113共用,實(shí)現(xiàn)信號(hào)的隔離。TJA1050 符合ISO 11898 標(biāo)準(zhǔn),因此它可以和聯(lián)合收獲機(jī)上其他遵從ISO 11898 標(biāo)準(zhǔn)的收發(fā)器產(chǎn)品協(xié)同操作[4-5],其硬件設(shè)計(jì)如圖4。
3 軟件設(shè)計(jì)
為了達(dá)到程序的簡(jiǎn)單明了、易于閱讀、調(diào)試方便、采樣率高及可靠性好的目的,采用結(jié)構(gòu)化的程序設(shè)計(jì)方法。本研究采用的是MAPLAB IDE V8.76作為控制系統(tǒng)的軟件作為開發(fā)環(huán)境,并采用Hitech公司開發(fā)的PICC編譯器進(jìn)行編寫、調(diào)試和編譯程序。主要介紹CAN模塊以及PWM模塊的初始化程序,具體實(shí)現(xiàn)如下:
////////// 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; ///設(shè)置CANTX/RB2輸出
TRISB |= 0x08; ///設(shè)置CANRX/RB3輸入
/////
ECANCON = 0; //模式0
CANCON = 0x80; //請(qǐng)求配置模式
while((CANSTAT & 0x80) == 0) //是否進(jìn)入配置模式
{
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
///設(shè)置發(fā)送郵箱0標(biāo)識(shí)符號(hào)
TXB0CON = 0x03; //設(shè)置為最高優(yōu)先級(jí)TXPRI=11
TXB0SIDH = 0x80; //設(shè)置發(fā)送緩沖器0的標(biāo)準(zhǔn)標(biāo)識(shí)符
TXB0SIDL = 0x40; //SID10:SID0=0x281 0x50 0x20 ;0x181 0x30 0x20
TXB0DLC = 0x08; //TXRTR = 0,設(shè)置數(shù)據(jù)長(zhǎng)度為8個(gè)字節(jié)
///設(shè)置接收郵箱0的標(biāo)識(shí)符和初始化數(shù)據(jù)
RXB0CON = 0x20;
////初始化接收濾波器0和接收屏蔽,
RXF0SIDH = 0x80;
RXF0SIDL = 0x40;
RXM0SIDH = 0xFF;
RXM0SIDL = 0x00;
RXF0EN = 1;
////
CIOCON = 0x20;
/////
CANCON = 0x00; /////請(qǐng)求進(jìn)入正常操作模式
while((CANSTAT & 0xE0) != 0) ////是否進(jìn)入正常模式
{
NOP();
}
//////
PIR5 = 0x00; ////清所有中斷標(biāo)志
PIE5 = 0x01; ////使能接收緩沖器0的接收中斷
IPR5 = 0x01; ////設(shè)置優(yōu)先級(jí)
}
pwm相關(guān)文章:pwm是什么
評(píng)論