新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于CAN總線與以太網(wǎng)的嵌入式網(wǎng)關(guān)設(shè)計(jì)

基于CAN總線與以太網(wǎng)的嵌入式網(wǎng)關(guān)設(shè)計(jì)

作者: 時間:2009-08-26 來源:網(wǎng)絡(luò) 收藏

2.2 RTL8019AS驅(qū)動程序的實(shí)現(xiàn)
RTL8019AS的驅(qū)動程序和SJA的驅(qū)動程序一樣,有3種功能:芯片初始化、收包、發(fā)包。
(1)RTL8019AS的初始化。RTL8019AS的初始化過程比較復(fù)雜,但十分重要,它決定了通信過程中的一些重要參數(shù)。如設(shè)置相關(guān)工作模式的寄存器,分配和初始化接收及發(fā)送緩沖區(qū),初始化網(wǎng)卡接收地址等,其流程圖見圖5所示。

本文引用地址:http://m.butianyuan.cn/article/152371.htm

(2)數(shù)據(jù)的發(fā)送與接收。因?yàn)樵赗TL8019AS的初始化程序中已經(jīng)完成了的物理地址設(shè)置,并指定了發(fā)送緩沖區(qū)起始頁面地址寄存器TPSR。此外,RTL8019AS的CRC校驗(yàn)自動生成器也被使能,所以RTL8019AS的數(shù)據(jù)包發(fā)送程序相對要簡單。在數(shù)據(jù)包的發(fā)送過程中,AT89C55只要通過遠(yuǎn)程DMA將待發(fā)送的數(shù)據(jù)包寫至RTL8019AS片內(nèi)SRAM的發(fā)送緩沖區(qū),并啟動發(fā)送過程即可。
在接收數(shù)據(jù)包時,有查詢和中斷兩種方式,鑒于AT89C55的處理能力有限,在該中采用查詢方式,根據(jù)判斷CURB==BNRY+1,可以判斷是否收到新的數(shù)據(jù)包,如果有則通過DMA讀操作從網(wǎng)卡芯片RAM讀出數(shù)據(jù)。
2.3 協(xié)議轉(zhuǎn)換流程
網(wǎng)絡(luò)接口實(shí)現(xiàn)兩種網(wǎng)絡(luò)的互連。當(dāng)應(yīng)用層有數(shù)據(jù)要發(fā)送到節(jié)點(diǎn)時,首先將數(shù)據(jù)發(fā)送到,由控制器協(xié)議轉(zhuǎn)換模塊解析完整的協(xié)議數(shù)據(jù)包,通過控制器發(fā)送到CAN。反之,當(dāng)CAN設(shè)備有數(shù)據(jù)要發(fā)送到用戶層時,首先將數(shù)據(jù)發(fā)送到透明,由CAN控制器協(xié)議模塊將完整的CAN協(xié)議數(shù)據(jù)包存放在緩沖區(qū),再通知主控芯片,由它調(diào)用以太網(wǎng)控制協(xié)議轉(zhuǎn)換模塊,將完整的 CAN協(xié)議數(shù)據(jù)包作為應(yīng)用層數(shù)據(jù)封裝起來,再發(fā)送到以太網(wǎng)的應(yīng)用層。

3 結(jié) 語
這里介紹的是一種低成本、高可靠性、快捷的CAN以太網(wǎng)網(wǎng)關(guān)的硬件、軟件方案,通過實(shí)際應(yīng)用證明,該可以作為CAN節(jié)點(diǎn)的一個模塊,能夠與儀器儀表等設(shè)備相結(jié)合,使其具有網(wǎng)絡(luò)通信的能力,比較同類產(chǎn)品的設(shè)計(jì),該設(shè)計(jì)能大大提高其性價比。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

上一頁 1 2 3 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉