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

正文內(nèi)容

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

2024-12-16 01:34本頁面
  

【正文】 在 CAN 中存在 5 類不同的錯誤位錯誤、填充錯誤、 CRC 錯誤、形式錯誤、應答錯誤、 在網(wǎng)絡中的任何一個節(jié)點 ,根據(jù)其錯誤計數(shù)器的數(shù)值 ,可能處于下列 3種狀態(tài)之一: “錯誤一激活”節(jié)點: 一個“錯誤一激活”節(jié)點可以正常參與總線通信 ,并在檢測到錯誤時 ,發(fā)出一個激活錯誤標志。 “總線脫離”節(jié)點: 當一個節(jié)點由于請求故障界定實體而對總線處于關閉狀態(tài)時 ,其處于“總線脫離”狀態(tài),在“總線脫離”狀態(tài)。 當節(jié)點的發(fā)送計數(shù)器或接收計數(shù)器的值超過 127 時 ,則監(jiān)控器要求置相應節(jié)點為“錯誤一認可”狀態(tài) ,送出一個激活標志。 當節(jié)點的發(fā)送計數(shù)器的值 超過 255 時 ,則監(jiān)控器要求置相應節(jié)點為“脫離總線”狀態(tài)。 三、結(jié)構(gòu)設計 數(shù)據(jù)采集系統(tǒng)由數(shù)據(jù)采集模塊和數(shù)據(jù)傳輸模塊組成 , 其中數(shù)據(jù)傳輸通過 CAN (Controller Area Network) 總線來實現(xiàn)。系統(tǒng)采用總線式網(wǎng)絡拓撲結(jié)構(gòu) , 其系統(tǒng)總體結(jié)構(gòu)如圖 2 所示。 CAN 總線符合 ISO11898 標準 , 最多可掛接 110個節(jié)點 , 采用 CAN 總線特有的多主傳送方式 , 各采集控制器根據(jù)現(xiàn)場需要 , 當有數(shù)據(jù)時可自主發(fā)送 , 無需主機不停地輪巡 , 節(jié)省了網(wǎng)絡上的數(shù)據(jù)流量 , 提高了傳輸效率。 數(shù)據(jù)采集系統(tǒng)將由現(xiàn)場傳感器送來的數(shù)據(jù)發(fā)送到空閑的 CAN 總線上 , 而總線上各節(jié)點通過預先設置好的驗收碼和驗收屏蔽碼 , 來決定是否使用這個消息。 處理后的數(shù)據(jù)再送回CAN 總線 , 經(jīng)數(shù)模轉(zhuǎn)換模塊或其他節(jié)點進行控制操作。 而當它需要對所有節(jié)點加以控制時 , 則采用廣播方式將命令發(fā)送到總線。 下面以數(shù)據(jù)采集系統(tǒng)中的數(shù)據(jù)采集 節(jié)點為例來說明單個節(jié)點的設計思想。 圖 3 節(jié)點硬件框圖 由于以 AD574為 A/D 轉(zhuǎn)換器的數(shù)據(jù)采集卡比較普及 , 故下面重點闡述數(shù)據(jù)傳輸部分 , 即 CAN 總線智能節(jié)點的設計 與實現(xiàn)。 CAN 節(jié)點原理圖如圖 4所示。 在 CAN 總線通信接口中 , 使用 PH IL IPS 公司的 SJA 1000和 TJA 1040 芯片。 TJA1040 為高性能、高速 CAN 收發(fā)器 , 使用它可增大通信距離 , 提高系統(tǒng)瞬間抗干擾能力 , 改良系統(tǒng)的抗電磁干擾及電磁輻射性能 , 保護總線 , 降低射頻干擾 , 實現(xiàn)熱防護等。 同時在總線兩端 CANH 和 CANL 之間加上分離中斷的 120 8 終端電阻 , 對總線阻抗匹配起著相當重要的作用 [ 4 ]。 SJA 1000 的中斷輸出信號 (/N T) 接至單片機的中斷引腳 IN T0, 通過中斷方式實現(xiàn)單片機與 CAN 控制器的通信。 1208 終端電阻不可忽略。 1040 (與 PCA 82C250 兼容 ) 的 “ SPL IT”引腳 (代替 82C250“ V ref”引腳 ) , 對總線 DC 穩(wěn)壓很有效 [ 4 ]。 若“ SPL IT”不使用 , 只需保持開路即可。 五、軟件設計 CAN 總線節(jié)點的軟件設計主要包括三大部分: CAN 節(jié)點初始化、報文發(fā)送和報文接收。當然要將 CAN 總線應用于通信任務比較復雜的系統(tǒng)中還需詳細了解有關 CAN 總線錯誤處理、總線脫離處理、接收濾波處理、波特率參數(shù)設置和自動檢測以及 CAN 總線通信距XXX 大學 XXX 學院本科畢業(yè)設計 7 離和節(jié)點數(shù)的計算等方面的內(nèi)容。 (一) 初始化子程序 SJA1000 的初始化只有在復位模式下才可以進行。在完成 SJA1000 的初始化設置以后 SJA1000 就可以回到工作狀態(tài) 進行正常的通信任務。程序中寄存器符號表示的是 SJA1000 相應寄存器占用的片外存貯器地址 這些符號可在程序的頭部用偽指令 EQU 進行定義。 CANINI: MOV DPTR, MOD ;方式寄存器 MOV A , 09H ;進入復位模式 對 SJA1000 進行初始化 . MOVX DPTR, A MOV DPTR, CDR ;時鐘分頻寄存器 MOV A , 88H ;選擇 PeliCAN 模式 關閉時鐘輸出 CLKOUT MOVX 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 中的首址 XXX 大學 XXX 學院本科畢業(yè)設計 8 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 晶振情況下 設置波特率為 80kbps. MOVX DPTR, A MOV DPTR, OCR ;輸出控制寄存器 MOV A , 0AAH MOVX DPTR , A MOV DPTR, RBSA ;接收緩存器起始地址寄存器 MOV A, 0 ;設置接收緩存器 FIFO 起始地址為 0 MOVX DPTR, A MOV DPTR, TXERR ;發(fā)送錯誤計數(shù)寄存器 . MOV A , 0 ;清除發(fā)送錯誤計數(shù)寄存器 MOVX DPTR, A MOV DPTR , ECC ;錯誤代碼捕捉寄存器 MOVX A , DPTR ;清除錯誤代碼捕捉寄存器 MOV DPTR, MODE ;方式寄存器 MOV A , 08H ;設置單濾波接收方式 并返回工作狀態(tài) MOVX DPTR , A RET (二) 發(fā)送子程序 發(fā)送子程序負責節(jié)點報文的發(fā)送,發(fā)送時用戶只需將待發(fā)送的數(shù)據(jù)按特定格 式組合成一幀報文送入 SJA1000 發(fā)送緩存區(qū)中,然后啟動 SJA1000發(fā)送即可。如下文程序所示,發(fā)送程序分發(fā)送遠程幀和數(shù)據(jù)幀兩種:遠程幀無數(shù)據(jù)場。 XXX 大學 XXX 學院本科畢業(yè)設計 9 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é)的擴展幀格式報文 MOVX DPTR, A INC DPTR MOV A , ID0 ; 4 個字節(jié)的標識符 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 XXX 大學 XXX 學院本科畢業(yè)設計 10 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 (三) 查詢方式接收子程序 接收子程序負責節(jié)點報文的接收以及其它情況處理,接收子程序比發(fā)送子程序要復雜一些。如果對通信的實時性要求不是很強,建議采用查詢接收方式。 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 ;將方式寄存器復位請求位清 0 LCALL ALARM. ;調(diào)用報警子程序 RET XXX 大學 XXX 學院本科畢業(yè)設計 11 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 準備讀取數(shù) MOVX A, DPTR ;首字節(jié)是接收幀格式字 JNB , RDATA ; RTR=1 是遠程請求幀 無數(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 ;讀取并
點擊復制文檔內(nèi)容
研究報告相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1