0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于S3C2440A嵌入式微處理器實現(xiàn)高速接入網(wǎng)絡(luò)的設(shè)計

電子設(shè)計 ? 來源:電子設(shè)計應(yīng)用 ? 作者:趙小樸,李莉,宋華 ? 2021-05-25 11:07 ? 次閱讀

嵌入式系統(tǒng)廣泛應(yīng)用在工業(yè)測控、智能儀表、智能家庭等很多領(lǐng)域。隨著嵌入式系統(tǒng)應(yīng)用范圍的不斷擴(kuò)展及網(wǎng)絡(luò)應(yīng)用的日益普及,使得越來越多的嵌入式系統(tǒng)需要網(wǎng)絡(luò)功能。三星公司S3C2440A是國內(nèi)應(yīng)用較多的嵌入式微處理器之一,在S3C2440A應(yīng)用系統(tǒng)中,目前只支持10/100M的網(wǎng)絡(luò)接口,有很大的實用價值,既可以拓展S3C2440A的應(yīng)用領(lǐng)域,也可以給其它嵌入式系統(tǒng)高速接入網(wǎng)絡(luò)提供一種簡單易行的參考。

設(shè)計方案

本系統(tǒng)主要由S3C2440A、存儲器、AX88180、千兆PHY芯片88E1111、嵌入式Linux、網(wǎng)絡(luò)驅(qū)動程序等組成嵌入式Linux內(nèi)核負(fù)責(zé)系統(tǒng)任務(wù)的管理并集成TCP/IP協(xié)議,方便實現(xiàn)網(wǎng)絡(luò)功能控制。S3C2440A負(fù)責(zé)整個系統(tǒng)的控制,它與AX88180以總線方式連接,是通信控制的主體。S3C2440A通過網(wǎng)絡(luò)驅(qū)動程序?qū)崿F(xiàn)對AX88180內(nèi)部寄存器編程,實現(xiàn)對以太網(wǎng)數(shù)據(jù)的發(fā)送和接收,從而完成網(wǎng)絡(luò)與系統(tǒng)之間的數(shù)據(jù)傳輸。AX88180與88E1111之間采用RGMII接口方式互連,負(fù)責(zé)數(shù)據(jù)傳送底層協(xié)議的實現(xiàn)。

這里簡要介紹一下S3C2440A與AX88180器件,這兩個器件是通信控制的主體。

S3C2440A是基于ARM920T核的16/32位RISC微處理器,運行頻率高達(dá)500MHz,主要面向手持設(shè)備以及高性價比、低功耗的應(yīng)用,適用于開發(fā)各類高端手持、小型終端以及網(wǎng)絡(luò)應(yīng)用產(chǎn)品,具有非常豐富的片上資源,比如LCD、SDRAM、NAND FLASH、DMA、AD、PWM控制器,以及UART、USB、攝像頭、觸摸屏、IIC、IIS、SPI、SD、MMC、AC97等接口。

AX88180是臺灣亞信公司推出的一款Non-PCI千兆以太網(wǎng)控制芯片,內(nèi)置1000Mbps以太網(wǎng)媒體存取控制器(MAC);有40KBytes SRAM網(wǎng)絡(luò)封包緩存器;硬件支持IP/TCP/UDP checksum offloads。它可以十分方便地實現(xiàn)與一般16/32位微處理器連接,可以象SRAM一樣被訪問。它符合IEEE 802.3/lEEE 802.3u/IEEE 802.3ab協(xié)議,適用于串流媒體、多媒體網(wǎng)絡(luò)、高頻寬傳輸?shù)阮I(lǐng)域,如數(shù)字媒體、家用網(wǎng)關(guān)及IP電視等。

o4YBAGCsaieAMOOcAAF8A_FeiSU788.png

硬件設(shè)計

由于硬件電路比較復(fù)雜,這里只給出核心電路連接,S3C2440A與AX88180之間采用總線方式相連,地址總線A2-A15、數(shù)據(jù)總線D0-D31、讀寫信號等可以直接連接,AX88180的40M~100M時鐘信號由S3C2440A提供,AX88180中斷信號與S3C2440A EINT11相連,整個接口電路無需外加電路;AX88180與PHY芯片之間采用簡化的千兆比特媒體獨立接口RGMII接口,信號一一對應(yīng)直接相連即可。

軟件設(shè)計

從整體角度考慮,Linux網(wǎng)絡(luò)系統(tǒng)可以分為硬件層、設(shè)備驅(qū)動層、網(wǎng)絡(luò)協(xié)議層和應(yīng)用層。在S3C2440A系統(tǒng)上移植有嵌入式Linux、集成TCP/IP等協(xié)議棧,應(yīng)用層的程序可以自己編寫也可以移植,這里我們主要分析一下設(shè)備驅(qū)動程序的實現(xiàn)。

在嵌入式Linux中,整個網(wǎng)絡(luò)驅(qū)動程序的框架可分為四層,分別為協(xié)議接口層、網(wǎng)絡(luò)設(shè)備接口層、設(shè)備驅(qū)動功能層、網(wǎng)絡(luò)設(shè)備和網(wǎng)絡(luò)媒介層,這個框架在內(nèi)核網(wǎng)絡(luò)模塊中已經(jīng)搭建完成,在設(shè)計驅(qū)動程序的時候,要做的主要工作就是根據(jù)上層網(wǎng)絡(luò)設(shè)備接口層定義的device結(jié)構(gòu)和底層具體的硬件特性,來完成設(shè)備驅(qū)動的功能。驅(qū)動程序主要由初始化、打開、關(guān)閉、數(shù)據(jù)接收及發(fā)送等函數(shù)組成。

pIYBAGCsajCACBESAADgwjJGP7o471.png

初始化函數(shù)

初始化函數(shù)完成網(wǎng)絡(luò)設(shè)備的初始化,由數(shù)據(jù)結(jié)構(gòu)device中的init函數(shù)指針來調(diào)用,加載AX88180驅(qū)動模塊后,就會調(diào)用初始化過程。該首先通過檢測物理設(shè)備的硬件特征來檢測網(wǎng)絡(luò)物理設(shè)備是否存在,之后配置設(shè)備所需要的資源,比如中斷等。這些過程完成后,就要構(gòu)造設(shè)備設(shè)備數(shù)據(jù)結(jié)構(gòu),用檢測到的數(shù)據(jù)初始化其相關(guān)變量,最后向Linux內(nèi)核注冊設(shè)備并申請內(nèi)存空間。

打開函數(shù)

打開函數(shù)在網(wǎng)絡(luò)設(shè)備驅(qū)動程序中是在網(wǎng)絡(luò)設(shè)備狀態(tài)由down狀態(tài)轉(zhuǎn)為up狀態(tài)時,即被激活的時候被調(diào)用,有很多AX88180及88E1111的初始化工作可以放在這里做。在驅(qū)動程序作為一個模塊被裝入時,打開函數(shù)還要防止模塊卸載時設(shè)備處于打開狀態(tài)。

關(guān)閉函數(shù)

關(guān)閉函數(shù)和打開函數(shù)做相反的工作,是在設(shè)備狀態(tài)由up轉(zhuǎn)為down時被調(diào)用的,作用是釋放資源以減少系統(tǒng)負(fù)擔(dān)。在驅(qū)動程序作為模塊裝入時,關(guān)閉函數(shù)還要減少沒備被引用的次數(shù),以便卸載驅(qū)動程序。

發(fā)送函數(shù)

發(fā)送函數(shù)是網(wǎng)絡(luò)驅(qū)動程序的關(guān)鍵過程之一,它與dev-》hard_start_xmit連接,在內(nèi)核通過設(shè)備向外發(fā)送數(shù)據(jù)時調(diào)用它。系統(tǒng)給AX88180分配一塊64K的地址空間,其中8000H-FBFFH作為發(fā)送緩沖區(qū)地址,在系統(tǒng)調(diào)用驅(qū)動程序的xmit時,發(fā)送的數(shù)據(jù)放在一個sk_buff結(jié)構(gòu)中,發(fā)送到數(shù)據(jù)緩沖區(qū)地址,再由AX88180發(fā)送到網(wǎng)絡(luò)上。如果發(fā)送成功,hard_start_xmit釋放sk_buff,返回0;如果設(shè)備暫時無法處理,則返回1。硬件在發(fā)送結(jié)束后產(chǎn)生中斷。

中斷和接收函數(shù)

中斷和接收函數(shù)也是驅(qū)動程序的關(guān)鍵過程之一,如果有數(shù)據(jù)收到,AX88180會產(chǎn)生一個中斷通知系統(tǒng),在中斷處理程序中驅(qū)動程序申請一塊sk_buff(),從AX88180讀出數(shù)據(jù)并放置到接收緩沖區(qū)地址0000H~7000H里,然后來填充sk_buff中的一些信息,由skb-》dev=dev判斷收到幀的協(xié)泌類型,填入skb-》protocol,再把指針skb-》mac.raw指向硬件數(shù)據(jù),然后丟棄幀頭。之后還要設(shè)置skb-》pkt_type,標(biāo)明鏈路層數(shù)據(jù)類型,最后調(diào)用netif_rX()把數(shù)據(jù)傳送給協(xié)議層。

下面是發(fā)送函數(shù)部分代碼:

20100727124452124.jpg

20100727124452125.jpg

20100727124452126.jpg

結(jié)語

本文介紹的千兆網(wǎng)絡(luò)接口在S3C2440A系統(tǒng)中的應(yīng)用方案已經(jīng)得以實現(xiàn),1000 Full-duplex模式下,數(shù)據(jù)傳輸速率可以達(dá)到200Mbp,在使用FTP下載數(shù)據(jù)時,速度可以達(dá)到4Mbps以上,是使用100M網(wǎng)絡(luò)接口的5~6倍。如果使用其它更高速度的微處理器,網(wǎng)絡(luò)接口的速度會更高。

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5082

    文章

    19126

    瀏覽量

    305249
  • 存儲器
    +關(guān)注

    關(guān)注

    38

    文章

    7492

    瀏覽量

    163842
  • 微處理器
    +關(guān)注

    關(guān)注

    11

    文章

    2263

    瀏覽量

    82457
收藏 人收藏

    評論

    相關(guān)推薦

    千兆網(wǎng)絡(luò)接口在S3C2440A系統(tǒng)中的應(yīng)用方案

    嵌入式系統(tǒng)需要網(wǎng)絡(luò)功能。三星公司S3C2440A是國內(nèi)應(yīng)用較多的嵌入式微處理器之一,在S3C2440A應(yīng)用系統(tǒng)中,目前只支持10/100M
    發(fā)表于 04-17 07:00

    基于微處理器S3C2440A的手持終端電源管理系統(tǒng)設(shè)計

    面臨越來越大的壓力。如何設(shè)計出性能穩(wěn)定、功耗低的電源管理系統(tǒng)已經(jīng)成為嵌入式手持終端設(shè)備開發(fā)的難點之一。本文重點介紹基于微處理器S3C2440A的手持終端電源管理系統(tǒng)。
    發(fā)表于 07-24 06:22

    基于S3C2440A的彩色液晶顯示系統(tǒng)設(shè)計

    以三星公司嵌入式微處理器S3C2440A 和夏普公司3.5 英寸LCD 屏LQ035Q7DH01為基礎(chǔ),設(shè)計了顯示硬件電路,給出了如何開發(fā)其Linux 幀緩沖設(shè)備驅(qū)動程序。
    發(fā)表于 09-24 10:51 ?45次下載

    基于S3C2440A的銀行評價的設(shè)計

    提出了一種以S3C2440A為核心處理器的銀行評價的設(shè)計方案,并結(jié)合XILINX公司的XL95144XL型CPLD,輔助S3C2440A,實現(xiàn)
    發(fā)表于 01-15 16:59 ?38次下載

    基于S3C2440A嵌入式視頻系統(tǒng)設(shè)計

    文中介紹基于嵌入式處理器S3C2440A構(gòu)建的視頻系統(tǒng),包括硬件體系結(jié)構(gòu)和軟件系統(tǒng)及其LINUX驅(qū)動程序的設(shè)計流程。提出嵌入式視頻系統(tǒng)的一般設(shè)計方法,滿足目前
    發(fā)表于 04-07 15:44 ?51次下載
    基于<b class='flag-5'>S3C2440A</b>的<b class='flag-5'>嵌入式</b>視頻系統(tǒng)設(shè)計

    32位RISC微處理器S3C2440A的用戶手冊免費下載

    本用戶手冊介紹三星的S3C2440A 16/32位RISC微處理器。三星的S3C2440A旨在為手持設(shè)備和一般應(yīng)用提供低功耗、高性能的小型微控制解決方案。為了降低系統(tǒng)總成本,
    發(fā)表于 06-09 08:00 ?2次下載
    32位RISC<b class='flag-5'>微處理器</b><b class='flag-5'>S3C2440A</b>的用戶手冊免費下載

    基于S3C2440A和WinCE 4.2操作系統(tǒng)實現(xiàn)數(shù)字尋北儀的應(yīng)用方案

    硬件和軟件兩部分,即嵌入式微處理器嵌入式操作系統(tǒng)。本文設(shè)計的尋北儀采用S3C2440A微處理器和WinCE 4.2操作系統(tǒng)。
    的頭像 發(fā)表于 03-19 15:52 ?3293次閱讀
    基于<b class='flag-5'>S3C2440A</b>和WinCE 4.2操作系統(tǒng)<b class='flag-5'>實現(xiàn)</b>數(shù)字尋北儀的應(yīng)用方案

    嵌入式微處理器的原理和應(yīng)用

    嵌入式微處理器是專為嵌入式系統(tǒng)設(shè)計的微處理器,它們是嵌入式系統(tǒng)的核心組件,負(fù)責(zé)執(zhí)行程序指令、處理數(shù)據(jù)和控制其他硬件設(shè)備。與通用
    的頭像 發(fā)表于 03-28 15:51 ?938次閱讀

    什么是嵌入式微處理器嵌入式微處理器有哪些?

    嵌入式微處理器是指嵌入到特定應(yīng)用系統(tǒng)中的微處理器,它是整個嵌入式系統(tǒng)的核心,由通用處理器演變而來,具有體積小、重量輕、成本低、可靠性高等優(yōu)點
    的頭像 發(fā)表于 03-29 11:39 ?1033次閱讀

    嵌入式微處理器的功能 嵌入式微處理器原理與應(yīng)用

    設(shè)計。本文將詳細(xì)介紹嵌入式微處理器的功能、原理與應(yīng)用,以期給讀者一個全面的了解。 一、功能 CPU處理能力:嵌入式微處理器內(nèi)置的CPU核心可以處理各種算法和指令,
    的頭像 發(fā)表于 05-04 14:50 ?1173次閱讀

    嵌入式微處理器的分類特點 嵌入式微處理器作用

    嵌入式微處理器是一種專門設(shè)計用于控制和執(zhí)行嵌入式系統(tǒng)任務(wù)的微處理器。與通用微處理器相比,嵌入式微處理器通常具有低功耗、小體積、低成本和高度可
    的頭像 發(fā)表于 04-21 14:52 ?1275次閱讀

    嵌入式微處理器有哪幾類 嵌入式微處理器包含哪些重要參數(shù)

    等。在本文中,我們將詳細(xì)介紹嵌入式微處理器的幾類以及包含的重要參數(shù)。 一、嵌入式微處理器的幾類 通用微處理器 通用微處理器是指那些不專為嵌入式
    的頭像 發(fā)表于 05-04 14:58 ?918次閱讀

    嵌入式微處理器的類型與特點 嵌入式微處理器技術(shù)的優(yōu)缺點

    嵌入式微處理器是一種專門設(shè)計和應(yīng)用于嵌入式系統(tǒng)的微處理器。相比于常規(guī)計算機(jī)系統(tǒng),嵌入式系統(tǒng)通常具有更高的實時性、更低的功耗、較小的尺寸和成本以及更強(qiáng)的可靠性和穩(wěn)定性要求。
    的頭像 發(fā)表于 05-04 15:10 ?2921次閱讀

    什么是嵌入式微處理器? 嵌入式微處理器的區(qū)別

    的任務(wù)或控制其他硬件設(shè)備。 嵌入式微處理器的出現(xiàn)可以追溯到20世紀(jì)70年代末以及80年代初。嵌入式微處理器通過集成了處理器核心、內(nèi)存、輸入輸出控制以及其他必要的外圍接口等功能,
    的頭像 發(fā)表于 04-21 15:44 ?1579次閱讀

    嵌入式微處理器的分類 嵌入式微處理器的種類和型號

    嵌入式微處理器是指內(nèi)部集成了CPU、存儲、外設(shè)接口等功能的微型芯片,被廣泛應(yīng)用于各種嵌入式系統(tǒng)中。嵌入式系統(tǒng)是指嵌入在某種設(shè)備或系統(tǒng)中的
    的頭像 發(fā)表于 05-04 16:31 ?2261次閱讀