【正文】
處在于: (1)報(bào)文傳送中不包含目標(biāo)地址,它是以全網(wǎng)廣播為基礎(chǔ),各接收站根據(jù)報(bào)文中反映數(shù)據(jù)性質(zhì)的標(biāo)識符過濾報(bào)文,該收的收下,不收的棄用。 CAN 總線具有高性能、高可靠性、高性價(jià)比、連接方便、實(shí)時(shí)性好及其獨(dú)特的設(shè)計(jì)等突出優(yōu)點(diǎn)應(yīng)用于許多工業(yè)部門,目前已成為比較流行的一種現(xiàn)場總線,廣泛應(yīng)用于控制系統(tǒng)中的各檢測和執(zhí)行機(jī)構(gòu)之間的數(shù)據(jù)通信。軟件采用匯編語言或 C 語言,并調(diào)試與分析。 A D 71A D 62A D 53A D 44A D 35A D 26A D 17A D 08W R _N9R D _ N10C S _ N11A L E12C L O C K O U T13IN T _ N14T X 027T X 126R X 025R X 124M O D E23V D D 122V D D 221V D D 320V S S 119V S S 218V S S 317R S T _NX T A L 116X T A L 215S J A 10 00. ... 圖 SJA1000引腳圖 本科生課程設(shè)計(jì)(論文) 5 USB 接口 PDIUSBD12 是一款帶有并行總線和局部 DMA 傳輸能力的高速 USB 接口器件 ,它支持 協(xié)議的所有傳輸方式 ,在本設(shè)計(jì)中用到了控制傳輸 ,中斷傳輸和批量傳輸。 圖 為 PDIUSBD13 固件編程結(jié)構(gòu)圖。 5)主循環(huán) 發(fā)送 USB 請求,處理 USB 總線事件和用戶功能處理等。 Connect()。由于發(fā)送器是功耗的主要部分,因此芯片溫度會迅速降低 。 SJA1000 在上電硬件復(fù)位之后,必須對其進(jìn)行軟件初始化之后才可以進(jìn)行數(shù)據(jù)通訊,初始化過程主要包括對其復(fù)位模式下配置時(shí)鐘分頻寄存器 CDR、總線定時(shí)寄存器 BTR0 和 BTR驗(yàn)收代碼寄存器 ACR、驗(yàn)收屏蔽寄存器 AMR 及輸出控制寄存器 OCR 等,實(shí)現(xiàn)對總線的速率、驗(yàn)收屏 蔽碼、輸出引腳驅(qū)動方式、總線模式及時(shí)鐘分頻進(jìn)行定義。 本文主要研究 USB 的 CAN 總線適配器設(shè)計(jì) ,以單片機(jī) AT89S21 和 SJA1000 控制器為控制核心,完成系統(tǒng)的控制要求。i++) { _nop_() } con_reg=ox41。 g_m_e_reg0=oxff。 tim0_reg=ox87。 本科生課程設(shè)計(jì)(論文) 15 mesg_reg70=ox55。 mesg_regf0=ox55。 mesg_reg22=oxf0。 con_reg=ox02。 pokeb(FP_SEG(ptr),FP_OFF(ptr),02)。\039。 return(6)。 length=i1。i++)ch=39。 return(1)。 int i,j,re_d,length。 fp_off(ptr)++。 release_ram_acces_right()。 fp_off(ptr)+=ox4000。 ptr=mk_fp(oxd000,0)。 i=peekb(fp_seg(ptr),fp_off(ptr))。 } else { ptr=mk_fp(oxd000,0)。 fp_off(ptr)+=ox4014。 get_ram_access_right()。 i++。 pokeb(fp_seg(ptr),fp_off(ptr),id)。}} 接收數(shù)據(jù)子程序代碼: int can_recv_file(int id,char *f) { void fra *ptr。 if(re_d==0x12){ pokeb(FP_SEG(ptr),FP_OFF(ptr),0)。 for(i=0。 i++。 FP_OFF(ptr)+=ox120。 i=0。 本科生課程設(shè)計(jì)(論文) 16 ptr=MKFP(oxd000,0)。 mesg_regf1=ox55。 mesg_reg10=ox95。 mesg_regd0=ox55。 mesg_reg50=ox55。 m15_m_reg2=oxff。 g_m_s_reg0=oxff。 for (i=0。通過這次課程設(shè)計(jì)使我明白了自己的知識還有所欠缺。其中物理層和數(shù)據(jù)鏈路層的功能由 SJA1000 完成,系統(tǒng)的開發(fā)主要在應(yīng)用層軟件的設(shè)計(jì)上,它主要由三個(gè)子程序:初始化子程序、發(fā)送數(shù)據(jù)和接收數(shù)據(jù)程序。雖然在這種故障條件出現(xiàn)時(shí),功耗將增加,但這種特性可以阻止發(fā)送器輸出級的破壞。 Disconnect()。 3) PDIUSBD12 命令接口 對 PDIUSBD12 器件進(jìn)行操作的模塊子程序集 ,以簡化器件的編程 。后臺 ISR 中斷服務(wù)程序和前臺主程序循環(huán)之間的數(shù)據(jù)交換通過事件標(biāo)志和數(shù)據(jù)緩沖區(qū)來實(shí)現(xiàn) ,當(dāng) PDIUSBD12 從 USB 收到一個(gè)數(shù)據(jù)包那么就對 MCU 產(chǎn)生一個(gè)中斷請求 ,MCU 立即響應(yīng)中斷 ,在 ISR 中固件將數(shù)據(jù)包從PDIUSBD12 內(nèi)部緩沖區(qū)移到數(shù)據(jù)緩沖區(qū) ,并在隨后清零 PDIUSBD12 的內(nèi)部緩沖區(qū) ,以使能接收新的數(shù)據(jù)包。光耦部分電源與 CAN_V 必須用小功率電源隔離模塊進(jìn)行隔離 ,這樣就提高了節(jié)點(diǎn)的穩(wěn)定性和安全性。 系統(tǒng)以單片機(jī) AT89S51 和 SJA1000 控制器為核心, USB 的 CAN 總線適配器設(shè)計(jì),實(shí)現(xiàn)計(jì)算機(jī)串口與 CAN 總線協(xié)議的轉(zhuǎn)換。 CAN 總線符合 ISO11898 標(biāo)準(zhǔn),通信速率高,最大傳輸速率可達(dá) 1Mbit/S,最大傳輸距離為 10km,傳輸介質(zhì)可為雙絞線。本文簡要提出了 USB 接口與