亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        STM32F103VET6和ENC28J60的嵌入式以太網(wǎng)接口設(shè)計(jì)

        2012-09-21 10:43:42張慶輝馬延立
        關(guān)鍵詞:函數(shù)庫(kù)外設(shè)固件

        張慶輝,馬延立

        (河南工業(yè)大學(xué) 信息科學(xué)與工程學(xué)院,鄭州 450001)

        引 言

        隨著以太網(wǎng)技術(shù)的普及和發(fā)展,基于以太網(wǎng)的應(yīng)用接口設(shè)備也迅速普及到醫(yī)療設(shè)備、工廠電力系統(tǒng)等領(lǐng)域。嵌入式以太網(wǎng)系統(tǒng)不但可以通過(guò)Internet將通信距離無(wú)限擴(kuò)大,使得大量數(shù)據(jù)的快速傳輸成為可能,還可以實(shí)現(xiàn)測(cè)控系統(tǒng)間的數(shù)據(jù)交換,為智能化、模塊化的嵌入式設(shè)備的實(shí)現(xiàn)提供了一種新途徑。然而,嵌入式以太網(wǎng)接口設(shè)計(jì)的核心器件是網(wǎng)絡(luò)控制芯片,其性能優(yōu)劣直接影響網(wǎng)絡(luò)通信的效率。

        本文采用基于32位Cortex-M3內(nèi)核的STM32F103VET6微處理器和高性能的以太網(wǎng)控制芯片ENC28J60實(shí)現(xiàn)高性能、高可靠性的嵌入式以太網(wǎng)通信接口設(shè)計(jì),其系統(tǒng)各功能模塊容易擴(kuò)展和升級(jí)。

        1 STM32F103VET6和ENC28J60簡(jiǎn)介

        STM32F103VET6是32位Cortex-M3內(nèi)核的新型處理器。它具有更多片內(nèi)RAM和外設(shè),其出色的性能和豐富的資源幾乎不需要擴(kuò)展外圍電路就能滿足一般的設(shè)計(jì)要求,硬件設(shè)計(jì)大為簡(jiǎn)化,且執(zhí)行速度和內(nèi)存容量完全滿足主控模塊的多任務(wù)實(shí)時(shí)應(yīng)用。

        ENC28J60是Microchip公司推出的28引腳獨(dú)立以太網(wǎng)控制芯片,可為嵌入式應(yīng)用提供低引腳數(shù)、低成本且高效易用的遠(yuǎn)程通信解決方案。ENC28J60采用業(yè)界標(biāo)準(zhǔn)的SPI串行接口,只需4條連線即可與主控單片機(jī)連接。ENC28J60以太網(wǎng)控制器的主要功能包括:

        ① 符合IEEE 802.3標(biāo)準(zhǔn)。內(nèi)置10Mbps以太網(wǎng)物理層器件(PHY)及媒介接入控制器(MAC),可按業(yè)界標(biāo)準(zhǔn)的以太網(wǎng)協(xié)議可靠地收發(fā)信息包數(shù)據(jù)。

        ② 可編程過(guò)濾功能。特殊的過(guò)濾器包括可編程模式匹配過(guò)濾器,可自動(dòng)評(píng)價(jià)、接收或拒收Magic Packe的單播、多播或廣播信息包,以減輕主控單片機(jī)的處理負(fù)荷。

        ③ 最高速度可達(dá)10MB/s的SPI接口。

        ④ 可編程8KB雙端口SRAM緩沖器,以高效的方式進(jìn)行信息包的存儲(chǔ)、檢索和修改,以減輕主控單片機(jī)的內(nèi)存負(fù)荷。該緩沖器提供了靈活可靠的數(shù)據(jù)管理機(jī)制[1]。

        2 硬件電路設(shè)計(jì)

        ENC28J60可以通過(guò)SPI接口方便地和微處理器連接而構(gòu)成嵌入式以太網(wǎng)通信接口,對(duì)于沒(méi)有SPI接口的微處理器也可以通過(guò)I/O口模擬SPI的方法實(shí)現(xiàn)。STM32F103VET6內(nèi)部含有3個(gè)SPI接口,可以很方便地實(shí)現(xiàn)與ENC28J60的連接。STM32F103VET6SPI引腳連接圖如圖1所示。

        圖1 STM32F103VET6SPI引腳連接圖

        ENC28J60具有上電復(fù)位功能,一旦VDD上升到某個(gè)門限值后,就會(huì)在片內(nèi)產(chǎn)生上電復(fù)位脈沖,當(dāng)VDD上升到足夠器件工作電壓時(shí),器件會(huì)以初始化狀態(tài)啟動(dòng),在器件正常工作期間,RESET引腳的內(nèi)部弱上拉將會(huì)使引腳保持邏輯高電平,在系統(tǒng)上電復(fù)位后不應(yīng)立即發(fā)送數(shù)據(jù)或訪問(wèn)到MAC、MII或PHY寄存器,至少應(yīng)延遲10ms。通過(guò)查詢ENC28J60狀態(tài)寄存器ESTAT中的CLKRDY位來(lái)確定系統(tǒng)是否準(zhǔn)備好是不可靠的,最好將復(fù)位引腳連接到單片機(jī)的引腳,通過(guò)軟件延時(shí)來(lái)使系統(tǒng)可靠復(fù)位[2]。

        ENC28J60內(nèi)部集成了2.5V穩(wěn)壓器,要使之工作穩(wěn)定,需要在VCAP引腳與地之間外接一個(gè)10μF電容;由于ENC28J60內(nèi)部穩(wěn)壓器無(wú)法驅(qū)動(dòng)外部負(fù)載,所以電源引腳必須與同一個(gè)3.3V電源相連,并且在每個(gè)電源引腳與地之間都應(yīng)連接一個(gè)0.1μF的磁片電容,而且電容應(yīng)盡可能靠近引腳。

        硬件電路連接如圖2所示。根據(jù)ENC28J60的工作頻率要求,需在OSC1和OSC2引腳間連接25MHz晶振及接地電容。ENC28J60的內(nèi)部模擬電路需要在RBIAS引腳與地之間外接一個(gè)1kΩ的電阻。以太網(wǎng)變壓器在實(shí)現(xiàn)以太網(wǎng)接口操作時(shí)是不可缺少的,在差分發(fā)送引腳(TPOUT+/TPOUT-)上,需要外接一個(gè)帶有中心抽頭的1∶1脈沖變壓器[3]。變壓器應(yīng)具有2kV以上的電壓隔離性能,以防止靜電干擾。本設(shè)計(jì)采用的是集成以太網(wǎng)隔離變壓器RJ45插座HR911105A。

        3 軟件設(shè)計(jì)

        3.1 STM32標(biāo)準(zhǔn)外設(shè)庫(kù)介紹

        STM32(即STM32F10系列芯片,包括了本文所用的芯片)標(biāo)準(zhǔn)外設(shè)庫(kù)也稱固件函數(shù)庫(kù)或固件庫(kù),是一個(gè)固件函數(shù)包,它由程序、數(shù)據(jù)結(jié)構(gòu)和宏組成,包括了微處理器所有外設(shè)的性能特征。該函數(shù)庫(kù)還包括每一個(gè)外設(shè)的驅(qū)動(dòng)描述和應(yīng)用實(shí)例,為開發(fā)者訪問(wèn)底層硬件提供了一個(gè)中間API,通過(guò)使用固件函數(shù)庫(kù),無(wú)需深入掌握底層硬件細(xì)節(jié),就可以輕松應(yīng)用每一個(gè)外設(shè)。因此,使用固件函數(shù)庫(kù)可以大大減少用戶的程序編寫時(shí)間,進(jìn)而降低開發(fā)成本。該固件庫(kù)中的每個(gè)外設(shè)驅(qū)動(dòng)都由一組函數(shù)組成,這組函數(shù)覆蓋了該外設(shè)的所有功能,并且每個(gè)器件的開發(fā)都有一個(gè)通用API驅(qū)動(dòng),API對(duì)該驅(qū)動(dòng)程序的結(jié)構(gòu)、函數(shù)和參數(shù)名稱都進(jìn)行了標(biāo)準(zhǔn)化[4]。

        在實(shí)際開發(fā)過(guò)程中,根據(jù)應(yīng)用程序的需要,可以采取2種方法使用標(biāo)準(zhǔn)外設(shè)庫(kù):

        ① 使用外設(shè)驅(qū)動(dòng):這時(shí)應(yīng)用程序開發(fā)基于外設(shè)驅(qū)動(dòng)的 API。用戶只需要配置文件“stm32f10x_conf.h”,并使用相應(yīng)的文件“stm32f10x_ppp.h/.c”即可。

        ② 不使用外設(shè)驅(qū)動(dòng):這時(shí)應(yīng)用程序開發(fā)基于外設(shè)的寄存器結(jié)構(gòu)和位定義文件。

        使用標(biāo)準(zhǔn)外設(shè)庫(kù)進(jìn)行開發(fā)可以極大地減少軟件開發(fā)的工作量,也是目前嵌入式系統(tǒng)開發(fā)的一個(gè)趨勢(shì)。

        3.2 ENC28J60初始化配置

        圖2 硬件電路連接圖

        ENC28J60控制寄存器中最基本和重要的5個(gè)寄存器是:EIE、EIR、ESTAT、ECON2和ECON1。

        EIE:以太網(wǎng)中斷使能控制寄存器,分為總中斷使能和各部分使能控制。

        EIR:以太網(wǎng)中斷標(biāo)志寄存器,在接收和發(fā)送數(shù)據(jù)包時(shí)根據(jù)不同的標(biāo)志位進(jìn)入不同的執(zhí)行程序。

        ESTAT:以太網(wǎng)狀態(tài)寄存器,反映以太網(wǎng)當(dāng)前的數(shù)據(jù)碰撞、忙信息、錯(cuò)誤信息、時(shí)鐘狀態(tài)等信息。

        ECON2:以太網(wǎng)輔助控制寄存器,設(shè)置數(shù)據(jù)指針、芯片節(jié)能等。

        ECON1:以太網(wǎng)主控制寄存器,這個(gè)是芯片最常用的寄存器,主要用來(lái)設(shè)置不同層的寄存器空間[5]。

        在使用ENC28J60發(fā)送和接收數(shù)據(jù)包時(shí),必須對(duì)器件進(jìn)行初始化設(shè)置。根據(jù)不同的應(yīng)用,一些配置選項(xiàng)可能需要更改。ENC28J60的初始化主要是對(duì)其接收和發(fā)送緩沖器、接收過(guò)濾器、晶振啟動(dòng)時(shí)間、MAC寄存器、PHY寄存器進(jìn)行設(shè)置。初始化ENC28J60之前,先關(guān)閉單片機(jī)的中斷輸入,對(duì)引腳給定一個(gè)持續(xù)的低電平復(fù)位信號(hào),然后對(duì)相應(yīng)的寄存器進(jìn)行設(shè)置。設(shè)置完成所有需要的寄存器后,判斷以太網(wǎng)狀態(tài)中的時(shí)鐘啟動(dòng)標(biāo)志位是否置位,然后開中斷。對(duì)于以太網(wǎng)傳輸部分來(lái)說(shuō),主要有兩個(gè)作用:一是對(duì)要發(fā)送的數(shù)據(jù)按照以太網(wǎng)數(shù)據(jù)幀格式進(jìn)行封裝并發(fā)送;二是對(duì)接收的以太網(wǎng)數(shù)據(jù)幀進(jìn)行解包,供應(yīng)用程序使用[6]。

        通過(guò)向STM32F103VET6的SPI緩沖器寫入相應(yīng)格式的命令代碼,可實(shí)現(xiàn)與ENC28J60的數(shù)據(jù)通信。需要指出的是,對(duì)PHY寄存器不能通過(guò)SPI口直接讀寫,而是通過(guò)特殊的MII寄存器來(lái)完成讀寫操作。

        3.3 SPI操作及ENC28J60收發(fā)數(shù)據(jù)包

        ENC28J60與STM32F103VET6的連接是通過(guò)SPI實(shí)現(xiàn)的,STM32F103VET6可通過(guò)SPI接口發(fā)送命令,訪問(wèn)ENC28J60的相關(guān)寄存器來(lái)完成相應(yīng)的操作。下面給出SPI讀/寫數(shù)據(jù),以及ENC28J60接收/發(fā)送數(shù)據(jù)包的部分源代碼:

        ENC28J60內(nèi)的MAC在發(fā)送時(shí)會(huì)自動(dòng)生成前導(dǎo)符和幀起始定界符。此外,MAC可根據(jù)配置生成填充和CRC字段。但主控制器必須生成所有其他幀字段,并將它們寫入緩沖存儲(chǔ)器,以待發(fā)送。ENC28J60發(fā)送數(shù)據(jù)包主要源代碼如下:

        ENC28J60收到一個(gè)完整的以太網(wǎng)數(shù)據(jù)包后,會(huì)向CPU發(fā)出中斷請(qǐng)求,CPU響應(yīng)ENC28J60的中斷申請(qǐng)后,系統(tǒng)將進(jìn)入中斷服務(wù)程序并開始接收數(shù)據(jù)。ENC28J60接收數(shù)據(jù)包主要源代碼如下:

        結(jié) 語(yǔ)

        由ENC28J60構(gòu)成的嵌入式以太網(wǎng)接口電路25 連接簡(jiǎn)單,功能強(qiáng)大,與目前大多數(shù)需要并行數(shù)據(jù)和地址總線的以太網(wǎng)相比,不需要外擴(kuò)地址和數(shù)據(jù)總線,并且完全符合未來(lái)工業(yè)以太網(wǎng)的發(fā)展趨勢(shì)。此外,本設(shè)計(jì)應(yīng)用在智能儀表中,可使現(xiàn)場(chǎng)設(shè)備方便地接入以太網(wǎng),以便更好地實(shí)現(xiàn)管控一體化;克服了市場(chǎng)上已有以太網(wǎng)控制器封裝引腳多的缺點(diǎn),簡(jiǎn)化了設(shè)計(jì),減小了占板空間。該接口電路實(shí)現(xiàn)方便,可以廣泛應(yīng)用于控制領(lǐng)域。

        [1] 祁樹勝.SPI接口以太網(wǎng)控制器ENC28J60及其應(yīng)用[J].微計(jì)算機(jī)信息,2006,8(2):266-268.

        [2] 王廷堯.以太網(wǎng)技術(shù)與應(yīng)用[M].北京:人民郵電出版社,2005.

        [3] 陳磊,馮冬芹,金建祥,等.以太網(wǎng)在工業(yè)應(yīng)用中的實(shí)時(shí)特性研究[J].浙江大學(xué)學(xué)報(bào):工學(xué)版,2004,38(6):29-31.

        [4] 李寧.基于 MDK的STM32處理器開發(fā)應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2008.

        [5] 張瑞瑞,馬晨普.一種精簡(jiǎn)可靠的低成本嵌入式以太網(wǎng)接口設(shè)計(jì)[J].電子產(chǎn)品世界,2006(12):66-68.

        [6] 張偉業(yè),黃云龍,陳國(guó)定.基于ENC28J60以太網(wǎng)通信接口的設(shè)計(jì)與實(shí)現(xiàn)[J].機(jī)電工程,2008,25(1):28-30.

        猜你喜歡
        函數(shù)庫(kù)外設(shè)固件
        用于優(yōu)化雷達(dá)信號(hào)處理的VSIPL函數(shù)庫(kù)
        基于Python的開源GIS應(yīng)用開發(fā)
        Scratch求最值和平均值
        基于BB60C的IQ數(shù)據(jù)采集與存儲(chǔ)系統(tǒng)設(shè)計(jì)
        基于固件的遠(yuǎn)程身份認(rèn)證
        提取ROM固件中的APP
        電腦愛好者(2015年7期)2015-04-09 08:54:02
        一種通過(guò)USB接口的可靠固件升級(jí)技術(shù)
        Microchip推出具備雙ADC外設(shè)的全新器件,擴(kuò)展其低成本8位PIC?單片機(jī)產(chǎn)品線
        奧林巴斯XZ—2新固件升級(jí)
        貼身呵護(hù) 必不可少的PSP外設(shè)
        亚洲av永久无码天堂网毛片| 久久一二区女厕偷拍图| 亚洲一区二区懂色av| 久久这里只精品国产2| 啪啪视频一区二区三区入囗| 一区二区三区内射视频在线观看 | 亚洲动漫成人一区二区| 最新国产精品亚洲二区| 在线无码精品秘 在线观看| 国产亚洲欧美另类第一页| 久久伊人网久久伊人网| 色婷婷精品国产一区二区三区| 日韩人妻免费一区二区三区| 亚洲男人的天堂色偷偷| 久久久人妻精品一区bav| 亚洲中文字幕久久在线| 国产香蕉一区二区三区在线视频| 成年丰满熟妇午夜免费视频| 亚洲爆乳精品无码一区二区三区| 天天躁夜夜躁狠狠躁2021a2| 日韩乱码人妻无码中文字幕久久| 2020年国产精品| 欧美性性性性性色大片免费的| 亚洲黄色电影| 久久亚洲伊人| 日韩av最新在线地址| 日本一区二区三区综合视频| 欧美群妇大交群| 国产精品特级毛片一区二区三区| 成人a级视频在线观看| 国产午夜三级一区二区三| 国产成人国产在线观看| 国产91在线|亚洲| 中文字幕一区二区三区| 亚洲一区二区日韩专区| 亚洲av综合一区二区在线观看| 狠狠色综合7777久夜色撩人| 韩国无码av片在线观看网站 | 九九精品无码专区免费| 欧美日本国产亚洲网站免费一区二区 | 国产AV秘 无码一区二区三区|