freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于can總線數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)——can總線通信實(shí)驗(yàn)-資料下載頁(yè)

2024-12-04 01:34本頁(yè)面

【導(dǎo)讀】試驗(yàn)表明,CAN總線的多主結(jié)構(gòu)使系統(tǒng)改型靈活,數(shù)據(jù)傳輸。穩(wěn)定,可靠性好,數(shù)據(jù)傳輸速率可達(dá)1Mbit/s,能滿足現(xiàn)場(chǎng)的實(shí)時(shí)性要求。比,具有廣泛的應(yīng)用前景?,F(xiàn)場(chǎng)總線順應(yīng)這一形式發(fā)展,已成為當(dāng)前工業(yè)數(shù)據(jù)總線領(lǐng)域中一個(gè)新熱。點(diǎn),被廣泛應(yīng)用于工業(yè)現(xiàn)場(chǎng)控制、智能家居、交通工具、環(huán)境監(jiān)測(cè)等眾多領(lǐng)域。本設(shè)計(jì)設(shè)計(jì)了一個(gè)通用的基于CAN總線的數(shù)據(jù)采集卡,著重闡述了它的設(shè)計(jì)。開(kāi)發(fā)的一種串行數(shù)據(jù)通訊總線。CAN總線與其它通信網(wǎng)的不同之處有二:一是報(bào)文傳送中。過(guò)濾報(bào)文,該收的收下,不該收的棄而不用。其好處是可在線上網(wǎng)下網(wǎng)、即插即用和多。CAN總線具有下列主要特性:. 多主站依據(jù)優(yōu)先權(quán)進(jìn)行總線訪問(wèn);借助接收濾波的多地址幀傳送;發(fā)送期間若丟失仲裁或由于出錯(cuò)而遭破壞的幀可自動(dòng)重發(fā)送;暫時(shí)錯(cuò)誤和永久性故障節(jié)點(diǎn)的判別以及故障節(jié)點(diǎn)的自動(dòng)脫離CAN總線。

  

【正文】 /////////////////////////////////////////////////////////// //CANCTRLCAN 控制寄存器 //BIT[7:5]請(qǐng)求工作模式的位 define Normal_Mode 0x0 define Sleep_Mode 0x20 define Loop_Mode 0x40 XXX 大學(xué) XXX 學(xué)院本科畢業(yè)設(shè)計(jì) 27 define Listen_Mode 0x60 define Config_Mode 0x80 //BIT[4]中止所有當(dāng)前報(bào)文發(fā)送的位 define ABAT 0x10 //BIT[3]單觸發(fā) 模式位使能 define OSM 0x08 //BIT[2]CLKOUT 引腳使能 define CLKEN 0x04 //BIT[1:0]CLKOUT 引腳預(yù)分頻比 define Fclkout_1 0x00 define Fclkout_2 0x01 //2 分頻 define Fclkout_4 0x02 //4 分頻 define Fclkout_8 0x03 //8 分 頻 void SJ1000_Init() { //使 SJ1000 進(jìn)入配置模式 SPIdata[2]=Config_Mode。 SJ1000_Write(CANCTRL,1)。 //位定時(shí) ,晶振 8M,傳輸速率 125kb/s /* SPIdata[2]=5。 //CNF3 SPIdata[3]=(17)|(63)|(10)。 //CNF2 SPIdata[4]=0x01。 */ //CNF1 SPIdata[2]=3。 //CNF3 SPIdata[3]=(17)|(33)|0X06。 //CNF2 SPIdata[4]=0x01。 //CNF1 SJ1000_Write(CNF3,3)。 //將芯片 TXnRTS 引腳都配置成數(shù)字輸入 SPIdata[2]=0。 SJ1000_Write(TXRTSCTRL,1)。 //將芯片 RXnBF 引腳配置成數(shù)字輸出 ,引腳功能 禁止 SPIdata[2]=0x0c。 XXX 大學(xué) XXX 學(xué)院本科畢業(yè)設(shè)計(jì) 28 SJ1000_Write(BFPCTRL,1)。 //接收濾波器 RXF0~2 設(shè)置濾波位,濾波標(biāo)準(zhǔn)幀標(biāo)識(shí)分別為 0x550,0x5d8,0x660,擴(kuò)展幀標(biāo)識(shí)統(tǒng)一為 0x05555 //RXF0 相關(guān) 4寄存器 SPIdata[2]=0xaa。 SPIdata[3]=0x08。 //報(bào)文濾波僅用于標(biāo)準(zhǔn)幀 SPIdata[4]=0x55。 SPIdata[5]=0x55。 //RXF1 相關(guān) 4寄存器 SPIdata[6]=0xbb。 SPIdata[7]=0x08。 SPIdata[8]=0x55。 SPIdata[9]=0x55。 //RXF2 相關(guān) 4寄存器 SPIdata[10]=0xcc。 SPIdata[11]=0x0。 SPIdata[12]=0x55。 SPIdata[13]=0x55。 SJ1000_Write(RXF0SIDH,12)。 //接收濾波器 RXF3~5 設(shè)置濾波位,濾波標(biāo)準(zhǔn)幀標(biāo)識(shí)分別為 0x330,0x3b8,0x440,擴(kuò)展幀標(biāo)識(shí)統(tǒng)一為 0x05555 //RXF3 相關(guān) 4寄存器 SPIdata[2]=0x66。 SPIdata[3]=0x0。 //報(bào)文濾波僅用于標(biāo)準(zhǔn)幀 SPIdata[4]=0x55。 SPIdata[5]=0x55。 //RXF4 相關(guān) 4寄存器 SPIdata[6]=0x77。 SPIdata[7]=0x0。 SPIdata[8]=0x55。 SPIdata[9]=0x55。 XXX 大學(xué) XXX 學(xué)院本科畢業(yè)設(shè)計(jì) 29 //RXF5 相關(guān) 4寄存器 SPIdata[10]=0x88。 SPIdata[11]=0x0。 SPIdata[12]=0x55。 SPIdata[13]=0x55。 SJ1000_Write(RXF3SIDH,12)。 //RXM0~RXM1 驗(yàn)收屏蔽寄存器設(shè)置 //RXM0 SPIdata[2]=0xff。 SPIdata[3]=0x03。 SPIdata[4]=0xff。 SPIdata[5]=0xff。 //RXM1 SPIdata[6]=0xff。 SPIdata[7]=0x03。 SPIdata[8]=0xff。 SPIdata[9]=0xff。 SJ1000_Write(RXM0SIDH,8)。 SPIdata[2]=0x00。 SJ1000_Write(RXB0CTRL,1)。 SPIdata[2]=0x00。 SJ1000_Write(RXB1CTRL,1)。 //SJ1000_BIT_M(RXB0CTRL,0x60,0x20)。 //接收緩沖 器 0 設(shè)定接收符合濾波器條件的所有帶擴(kuò)展標(biāo)識(shí)符或標(biāo)準(zhǔn)標(biāo)識(shí)符的有效報(bào)文 //SJ1000_BIT_M(RXB1CTRL,0x60,0x20)。 //接收緩沖器 1 設(shè)定接收符合濾波器條件的所有帶擴(kuò)展標(biāo)識(shí)符或標(biāo)準(zhǔn)標(biāo)識(shí)符的有效報(bào)文 SPIdata[2]=0x05。 SJ1000_Write(CANINTE,1)。 SPIdata[2]=Loop_Mode。 //進(jìn)入 SJ1000 測(cè)試模式 XXX 大學(xué) XXX 學(xué)院本科畢業(yè)設(shè)計(jì) 30 // SPIdata[2]=Normal_Mode。 SJ1000_Write(CANCTRL,1)。 } //SJ1000 發(fā)送報(bào)文函數(shù) //參數(shù) 1:表明發(fā)送緩沖區(qū)的序號(hào) ,對(duì)應(yīng) TXB0~TXB1 //參數(shù) 2:區(qū)分發(fā)送標(biāo)準(zhǔn)標(biāo)識(shí)符 :0/擴(kuò)展標(biāo)識(shí)符 :1 //參數(shù) 3:區(qū)分發(fā)送數(shù)據(jù)幀 :0/遠(yuǎn)程請(qǐng)求 :1 // 參數(shù) 4: 發(fā) 送 數(shù) 據(jù) 幀 的 字 節(jié) 數(shù) 1~8, 發(fā) 送 數(shù) 據(jù) 字 節(jié) 存 儲(chǔ) 范 圍 在SPIdata[6]~SPIdata[6+data_num1] void SJ1000_TX(uchar num,uchar Ex_Frame,uchar RTR_Flag,uchar data_num) { //數(shù)據(jù)寫(xiě)入發(fā)送緩沖器之前,必須對(duì) 位清零 SJ1000_BIT_M((TXB0CTRL|(num4)),0x08,0x00)。 SPIdata[1]=0x99。 //寫(xiě)入標(biāo)識(shí)符, TXBnSIDH,TXBnSIDL,TXB0EID8,TXB0EID0 if(Ex_Frame==0) { SPIdata[2]=(05)|(03)。 //報(bào)文只發(fā)送標(biāo)準(zhǔn)標(biāo)識(shí)符為 0x550 SPIdata[3]=0x55。 SPIdata[4]=0x55。 } else { //使能報(bào)文發(fā)送擴(kuò)展標(biāo)識(shí)符,設(shè)定為 0x15555 SPIdata[2]=(15)|(13)|(10)。 SPIdata[3]=0x55。 SPIdata[4]=0x55。 } if(RTR_Flag==0) //發(fā)送數(shù)據(jù)幀 { SPIdata[5]=data_numamp。0x0f。 //發(fā)送數(shù)據(jù)幀的字節(jié)數(shù) SJ1000_WR_Buffer((num1),(5+data_num))。 XXX 大學(xué) XXX 學(xué)院本科畢業(yè)設(shè)計(jì) 31 } else //發(fā)送遠(yuǎn)程幀 { SPIdata[5]=(16)。 SJ1000_WR_Buffer((num1),5)。 } SJ1000_BIT_M((TXB0CTRL|(num4)),0x08,0x08)。 // SJ1000_RTS(0x1)。 } void SJ1000_RCV( ) { uchar RXB_num,RXB_type,RXB_FILTER,data_num。 SJ1000_RX_Status()。 Status=SPIdata[1]。 RXB_num=Status6。 RXB_type=(Status3) amp。 0x03。 RXB_FILTER=Status amp。 0x07。 if(RXB_num==0x01) //收到 報(bào)文在 RXB0 中 { SJ1000_Read(RXB0DLC,1)。 data_num=SPIdata[2]。 // SendByte(data_num)。 if(RXB_type==0x0|RXB_type==0x02) // 報(bào) 文 數(shù) 據(jù) 存 儲(chǔ) 在SPIdata[1]~SPIdata[1+data_num]中 SJ1000_RD_Buffer(1,data_num)。 //從 RXB0D0 開(kāi)始讀取數(shù)據(jù) else RTR_BIT=1。 } if(RXB_num==0x02) //收到報(bào)文在 RXB1 中 { XXX 大學(xué) XXX 學(xué)院本科畢業(yè)設(shè)計(jì) 32 SJ1000_Read(RXB1DLC,1)。 data_num=SPIdata[2]。 if(RXB_type==0x0|RXB_type==0x02) // 報(bào) 文 數(shù) 據(jù) 存 儲(chǔ) 在SPIdata[1]~SPIdata[1+data_num]中 J1000_RD_Buffer(3,data_num)。 //從 RXB1D0 開(kāi)始讀 取數(shù)據(jù) else RTR_BIT=1。 } } void SJ1000_INT() interrupt 0 { INT_FLAG=1。 SendByte(0x71)。 } define PWR_DOWN 0x2021 //省電模式 define SPD_FAST 0x4000 //快速模式 define DAC_AOUT 0xC000 // D/A 輸出 A 通 道,快速模式 define DAC_BOUT 0x4000 // D/A 輸出 B 通道,快速模式 define DAC_OUTB 0x1000 // D/A 輸出通道 B的數(shù)據(jù)值送入緩存 B,慢速模式 define DAC_OUTA 0x8000 // D/A 輸出通道 A,同時(shí)輸出緩存在 BUFFER B 中的電壓,慢速模式;即同時(shí)更新 A、 B 通道 sbit CS=P3^5。 sbit SCLK=P2^4。 sbit DIN=P2^5。 void TLV5618_Init() { P3M0|=(05)。 P3M1|=(05)。 XXX 大學(xué) XXX 學(xué)院本科畢業(yè)設(shè)計(jì) 33 P2M0|=(05)|(04)。 P2M1|=(05)|(04)。 } void TLV5618(uint DAC) { uchar i=0。 uint da=DAC。 SCLK=0。 DIN=0。 CS=0。 //片選使能 while(i++16) //輸出 16 位數(shù)據(jù): 4 位控制位, 12 位 D/A 數(shù)字量 { SCLK=1。
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1