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

正文內(nèi)容

基于can總線的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)-展示頁

2025-07-06 17:26本頁面
  

【正文】 (/N T) 接至單片機(jī)的中斷引腳 IN T0, 通過中斷方式實(shí)現(xiàn)單片機(jī)與CAN 控制器的通信。 終端電阻不可忽略。 1040 (與PCA 82C250兼容) 的“SPL IT”引腳 (代替82C250“ V ref”引腳) , 對總線DC 穩(wěn)壓很有效[ 4 ]。 若“SPL IT”不使用, 只需保持開路即可。五、軟件設(shè)計(jì)CAN 總線節(jié)點(diǎn)的軟件設(shè)計(jì)主要包括三大部分:CAN 節(jié)點(diǎn)初始化、報文發(fā)送和報文接收。當(dāng)然要將 CAN 總線應(yīng)用于通信任務(wù)比較復(fù)雜的系統(tǒng)中還需詳細(xì)了解有關(guān)CAN總線錯誤處理、總線脫離處理、接收濾波處理、波特率參數(shù)設(shè)置和自動檢測以及CAN總線通信距離和節(jié)點(diǎn)數(shù)的計(jì)算等方面的內(nèi)容。 (一)初始化子程序 SJA1000 的初始化只有在復(fù)位模式下才可以進(jìn)行。在完成 SJA1000 的初始化設(shè)置以后 SJA1000 就可以回到工作狀態(tài) 進(jìn)行正常的通信任務(wù)。程序中寄存器符號表示的是 SJA1000 相應(yīng)寄存器占用的片外存貯器地址 這些符號可在程序的頭部用偽指令EQU進(jìn)行定義。CANINI: MOV DPTR, MOD ;方式寄存器 MOV A , 09H ;進(jìn)入復(fù)位模式 對 SJA1000 進(jìn)行初始化. MOVX DPTR, A MOV DPTR, CDR ;時鐘分頻寄存器 MOV A , 88H ;選擇 PeliCAN 模式 關(guān)閉時鐘輸出 CLKOUTMOVX DPTR, A MOV DPTR, IER ;中斷允許寄存器 MOV A , 0DH ;開放發(fā)送中斷 超載中斷和錯誤警告中斷 MOVX DPTR, A MOV DPTR , AMR ;接收屏蔽寄存器 MOV R6, 4 MOV R0 , DAMR ;接收屏蔽寄存器內(nèi)容在片內(nèi) RAM 中的首址 AMR: MOV A R0 MOVX DPTR , A ;接收屏蔽寄存器賦初值 INC DPTR DJNZ R6 , AMR MOV DPTR , ACR ;接收代碼寄存器 MOV R6 , 4 MOV R0, DACR ;接收代碼寄存器內(nèi)容在片內(nèi) RAM 中的首址 ACR:MOV A, R0 MOVX DPTR, A ;接收代碼寄存器賦初值 INC DPTR DJNZ R6 , ACR MOV DPTR, BTR0 ;總線定時寄存器 0 MOV A, 03H MOVX DPTR, A MOV DPTR, BTR1 ;總線定時寄存器 1 MOV A , 0FFH ;16MHz 晶振情況下 設(shè)置波特率為 80kbps. MOVX DPTR, A MOV DPTR, OCR ;輸出控制寄存器 MOV A , 0AAH MOVX DPTR , A MOV DPTR, RBSA ;接收緩存器起始地址寄存器 MOV A, 0 ;設(shè)置接收緩存器 FIFO 起始地址為 0 MOVX DPTR, A MOV DPTR, TXERR ;發(fā)送錯誤計(jì)數(shù)寄存器. MOV A , 0 ;清除發(fā)送錯誤計(jì)數(shù)寄存器 MOVX DPTR, A MOV DPTR , ECC ;錯誤代碼捕捉寄存器 MOVX A , DPTR ;清除錯誤代碼捕捉寄存器 MOV DPTR, MODE ;方式寄存器 MOV A , 08H ;設(shè)置單濾波接收方式 并返回工作狀態(tài) MOVX DPTR , A RET (二)發(fā)送子程序 發(fā)送子程序負(fù)責(zé)節(jié)點(diǎn)報文的發(fā)送,發(fā)送時用戶只需將待發(fā)送的數(shù)據(jù)按特定格式組合成一幀報文送入SJA1000 發(fā)送緩存區(qū)中,然后啟動SJA1000發(fā)送即可。如下文程序所示,發(fā)送程序分發(fā)送遠(yuǎn)程幀和數(shù)據(jù)幀兩種:遠(yuǎn)程幀無數(shù)據(jù)場。TDATA: MOV DPTR, SR ;狀態(tài)寄存器 MOVX A, DPTR ;從 SJA1000 讀入狀態(tài)寄存器值 JB ,TDATA ;判斷是否正在接收 正在接收則等待 TS0: MOVX A, DPTR JNB ,TS0 ;判斷上次發(fā)送是否完成 未完成則等待發(fā)送完成 TS1: MOVX A, DPTR JNB ,TS1 ;判斷發(fā)送緩沖區(qū)是否鎖定 鎖定則等待 TS2: MOV DPTR, CANTXB ;SJA1000 發(fā)送緩存區(qū)首址 MOV A , 88H ;發(fā)送數(shù)據(jù)長度為 8 個字節(jié)的擴(kuò)展幀格式報文 MOVX DPTR, A INC DPTR MOV A , ID0 ;4 個字節(jié)的標(biāo)識符 ID0ID3 MOVX DPTR, A INC DPTR MOV A, ID1 MOVX DPTR, A INC DPTR MOV A , ID2 MOVX DPTR, A INC DPTR MOV A, ID3 MOVX DPTR,A MOV R0 , TRDATA ;CPU 發(fā)送數(shù)據(jù)區(qū)首址 MTBF:MOV A, R0 INC DPTR MOVX DPTR, A INC R0 CJNE R0, TRDATA+8 MTBF ;向發(fā)送緩沖區(qū)寫 8 個字節(jié) MOV DPTR, CMR ;命令寄存器地址 MOV A , 01H MOVX DPTR ,A ;啟動 SJA1000 發(fā)送 RET(三)查詢方式接收子程序 接收子程序負(fù)責(zé)節(jié)點(diǎn)報文的接收以及其它情況處理,接收子程序比發(fā)送子程序要復(fù)雜一些。如果對通信的實(shí)時性要求不是很強(qiáng),建議采用查詢接收方式。SEARCH: MOV DPTR, SR ;狀態(tài)寄存器地址 MOVX A , DPTR ANL A , 0C3H ;讀取總線脫離 錯誤狀態(tài) 接收溢出 JNZ PROC RET ;無上述狀態(tài) 結(jié)束 PROC: JNB ,PROCI BUSERR: MOV DPTR, IR ;IR 中斷寄存器 出現(xiàn)總線脫離 MOVX A , DPTR ;讀中斷寄存器 清除中斷位. MOV DPTR, MODE ;方式寄存器地址 MOV A, 08H MOVX DPTR, A ;將方式寄存器復(fù)位請求位清 0 LCALL ALARM. ;調(diào)用報警子程序 RET NOP PROCI: MOV DPTR, IR ;總線正常 MOVX A, DPTR ;讀取中斷位 NB , OTHER OVER: MOV DPTR, CMR ;數(shù)據(jù)溢出中斷置位. MOV A, 0CH MOVX DPTR, A ;在命令寄存器中清除數(shù)據(jù)溢出 RET NOP OTHER:JB ,RECE ;=1 接收 FIFO 未滿或接收 LJMP RECOUT ;=0接收緩沖區(qū)無數(shù)據(jù)退出接收 NOP RECE: MOV DPTR, CANRXB ;接收緩沖區(qū)首地址 16 準(zhǔn)備讀取數(shù) MOVX A, DPTR ;首字節(jié)是接收幀格式字 JNB ,RDATA ;RTR=1 是遠(yuǎn)程請求幀 無數(shù)據(jù) MOV DPTR, CMR MOV A , 04H ;=1 釋放接收緩沖區(qū) MOVX DPTR ,A ;只有接收了數(shù)據(jù)才能釋放接收緩沖區(qū) LCALL TDATA ;發(fā)送對方請求的數(shù)據(jù) LJMP RECOUT ;退出接收 NOP RDATA: MOV DPTR, CANRXB ;讀取并保存接收緩沖區(qū)的數(shù)據(jù) MOV R1, CPURBF ;CPU 片內(nèi)接收緩沖區(qū)首址 MOVX A, DPTR ;讀取讀取 CAN 緩沖區(qū)的 2 號字節(jié) MOV R1, A ;保存 ANL A, 0FH ;截取低 4 位是數(shù)據(jù)長度 0~8 ADD A, 4 ;加 4 個字節(jié)的標(biāo)識符 ID MOV R6, A RDATA: INC DPTR INC R1 MOVX A, DPTR MOV R1 , A DJNZ R6, RDATA0 ;循環(huán)讀取與保存 MOV DPTR, CMR MOV A, 04H ;釋放 CAN 接收緩沖區(qū) MOVX DPTR ,A RECOUT: MOV DPTR, ALC MOVX A, DPTR MOV DPTR, ECC MOVX A, DPTR NOP RET 需要注意的是: SJA 1000的初始化只有在復(fù)位模式下才可以進(jìn)行。 請求標(biāo)志來檢查SJA 1000是否已達(dá)到復(fù)位模式。 時鐘輸出控制寄存器 (OCR) 的內(nèi)容決定CAN 控制器的輸出方式。 BTR0、 BTR1寄存器的內(nèi)容可唯一地確定系統(tǒng)的通信波特率和同步跳轉(zhuǎn)寬度, 所以整個系統(tǒng)中的所有節(jié)點(diǎn), 這兩個寄存器的內(nèi)容必須相同 (包括上位機(jī)) , 否則將無法進(jìn)行通信。CAN總線最高速度達(dá)到1M。圖5 實(shí)驗(yàn)用電路板七、總結(jié)由基于CAN 總線的智能節(jié)點(diǎn)在數(shù)據(jù)采集卡中的實(shí)際運(yùn)用表明, 在實(shí)驗(yàn)室條件下數(shù)據(jù)傳輸速率最高可達(dá)1M / s, 誤碼率低, 當(dāng)節(jié)點(diǎn)出現(xiàn)嚴(yán)重錯誤時, 可自動脫離總線而整個系統(tǒng)不受影響。 因此可廣泛應(yīng)用于各種測控系
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1