国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 網絡通信 > 正文

MC9S12NE64型單片機的嵌入式以太網連接

2019-11-04 21:03:59
字體:
來源:轉載
供稿:網友

    作者:武漢理工大學自動化學院  胡榮強,李濤,徐丹

    摘要:分析基于單片機的以太網連接方案,介紹MC9S12NE64型16位單片機的特性及其最小系統的硬件設計,給出MC9S12NE64的初始化過程、主程序和TCP/ip協議棧實現的思想。

    要害詞:MC9S12NE64;單片機;嵌入式系統;以太網;TCP/IP

    中圖分類號:TN913.2文獻標識碼:B文章編號:1006—6977(2006)0l一0044一03

    1  引言

    隨著互聯網的出現和以太網的迅速發展,基于以太網的設備控制越來越多,發展也越來越快。目前,以太網(EtImmet)已經廣泛地應用于各種計算機網絡,通過以太網及TCP/IP協議棧可以使不同的網絡設備實現互連、交換數據。

    用以太網實現嵌入式系統的網絡連接有多種方案。傳統的多器件以太網連接方案是通過MCU擴展以太網控制器來實現的,必要時還需要擴展外部RAM和ROM。雖然這種方案應用起來不是很困難,但所用外部元件數量較多,系統開銷較大。穩定性不高。為了解決傳統方案的不足,本文討論以集成以太網MAC層和物理層的16位單片機MC9S12NE64來實現單器件以太網連接。與多器件方案相比.單器件連接方案具有所用外部元件少、系統開銷小、穩定性高、設計時間短等一系列優點。

    2  MC9S12NE64簡介

    MC9S12NE64是Freescale公司生產的基于HCSl2CPU內核的16位單片機,利用它可以方便地實現單器件以太網連接,構成一個完整的終端節點。MC9S12NE64的內部功能模塊框圖如圖1所示,主要特性如下:

    采用高性能16位HCSl2CPU內核,3.3V下工作頻率可達25MHz或10MIPS,具有優化的C語言體系結構,可以生成十分簡潔的代碼。

    帶有片上調試接口,可以進行實時在線仿真和調試,而無需仿真器。

    集成了64KB的nash內存和8KB的靜態RAM,能夠滿足大多數的應用場合。假如需要還可進行外部擴展。

MC9S12NE64型單片機的嵌入式以太網連接(圖一)

    集成了10/100Mbps以太網媒介訪問控制器(EMAC),內置標準的媒介獨立接口(MII),可以實現地址識別及過濾、以太類型過濾,支持半雙工和全雙工通信,具有和8KBRAM共用可配置的EMAC緩沖區,包括一個發送緩沖區和兩個接收緩沖區,MC9S12NE64的RAM以2倍于CPU的速度運行,使得CPU和EMAC緩沖區可以交叉存取數據。

    集成了10/100Mbps以太網物理層(EPHY),支持自動協商模式,支持半雙工和全雙工的通信。并具有自診斷功能。

    帶有8通道10位模數轉換器fADC)、4通道16位定時器、2個串行通信接口(SCI),1個高速串行外設接口(SPI)、1個具有256種時鐘速度選項的I2C接口,具備使用鎖相回路的時鐘及復位發生器(CRG)模塊,有多達70個通用I/O口。具有80引腳TQFP-EP和112引腳LQFP兩種封裝。

MC9S12NE64型單片機的嵌入式以太網連接(圖二)

    3  MC9S12NE64的簡單應用

    3.1硬件設計

    利用MC9S12NE64可以構成不同功能的網絡終端節點,如網絡服務器、帶因特網功能的設備、遠程監控(數據采集,診斷)、對現場設備的遠程控制、遠程設備通過電子郵件或文字尋呼機發送消息等。

    基于MC9S12NE64最少外圍器件的系統硬件電路原理圖如圖2所示。此最小系統由80引腳的MC9S12NE64與外圍器件組成,電路中帶有背景調試接頭J1;5個LED狀態指示燈(分別用來顯示網絡連接狀態,包括EPHY是否沖突、連接是否建立、是否接收數據、連接速度、雙工模式);必需的偏置電阻R5;高速局域網電磁隔離模塊(即RJ45以太網接口)。其中PHY_TXP和PHY_TXN為發送線,PHY_RXP和PGY_RXN為接收線。設計時,MC9S12NE64的物理端口與隔離變壓器連接時必須符合IEEE802.3對物理層規范的要求,如RJ45的插孔與隔離變壓器的間隔應盡量小,輸出和輸入差分信號對的走線要很好的隔離,確保電源的額定負載電流不小于300mA。設計時還應注重系統時鐘的要求,MC9S12NE64只支持皮爾斯型振蕩電路,晶振的精度應高于25ppm。系統中MC9S12NE64工作在正常的單片模式,其內部穩壓電源處于工作狀態。


    3.2MC9S12NE64的初始化

    MC9S12NE64單片機在工作之前。必須進行必要的初始化。主要包括時鐘及復位發生器(CRG)模塊、EMAC模塊、EPHY模塊等。雖然MC9S12NE64上的EMAC和EPHY被設計為兩個獨立的模塊,但假如用到內部的EPHY,則EMAC和EPHY必須同時進行初始化。

    MC9S12NE64的初始化過程如下:

    (1)初始化時鐘及復位發生器模塊來產生25MHz的內部總線時鐘,這一過程通過設置時鐘及復位發生器(CRG)模塊的寄存器表來完成。

    (2)設置EPHYCTL0寄存器的DIS10和DIS100位為1,使EPHY時鐘無效,直到EMAC和EPHY配置完畢。

    (3)通過EPHYCTL1寄存器的:EPHYADD0、E-PHYADD1、EPHYADD2、EPHYADD3、EPHYADD4來配置MII請求的EPHY地址。

    (4)配置自動協商模式。設置EPHYCTL0寄存器的ANDIS位為0.使用自動協商模式。

    (5)設置EPHYCTL0寄存器的LEDEN位為1答應EPHY驅動LED信號。設置EPHYCTL0寄存器的EPHYIEN位為1使EPHY中斷有效。設置

    EPHYCTL0寄存器的EPHYEN位為1使EPHY有效工作,這樣就可以實現EMAC和EPHY間的介質無關接口(MII)操作。

    (6)設置MCMST寄存器的MDCSEL位為0xA,來配置EMAC治理數據時鐘(EMACMDC)。

    (7)設置BUFCFG寄存器的BUFMAP位來配置EMAC以太網緩沖區的大小。BUFMAP的值用來確定系統RAM中用戶RAM和EMAC緩沖區的比例。BUFMAP最大為4,這時單個緩沖區的大小為1.5K字節,正好可以存放一個最大的以太網幀。大于緩沖區大小的數據包將被過濾掉,設計時應合理選擇。設置BUFCFG寄存器的MAXFL位來指定接受的最大幀長度,使緩沖區起到了數據過濾的作用。

    (8)通過MACAD寄存器來配置6字節的MAC地址。假如設備不連接到因特網,則MAC地址可自行定義。

    (9)設置ETCTL寄存器為0x17來控制網絡上傳輸的數據類型。

    (10)通過設置RXCTL寄存器的PROM、CON-MC和BCREJ位來配置EMAC的MAC地址過濾模式。假如不是自動協商模式,則還需要設置RFCE位來實現接收流控制。

    (11)設置NETCTL寄存器為0x81來配置EMAC的工作模式,并使EMAC正常工作。

    (12)設置IMASK寄存器來配置答應的EMAC中斷信號,如需要答應某種中斷請求信號,則將相應的位置1。

    (13)設置TXCTS寄存器的PTRC位和設置PTI-ME寄存器來初始化和傳遞暫停持續時間。

    (14)設置系統中斷為答應系統中斷。

    (15)通過EMACMII治理接口來設置EPHY,包括設置速度、雙工模式和流控制,設置EPHY中斷控制寄存器來配置EPHY中斷控制。

    (16)在自動協商模式下,通過設置EPHYCTL0寄存器的DIS10和DIS100位為0來啟動EPHY時鐘發生器。當自動協商完成且連接建立后,協商暫定和雙工設置由EPHYMII寄存器決定。EMAC必須由RXCTS寄存器的FRCE位和NETCTL的FDX位所設定的配置來更新協商暫定和雙工設置。

    至此。MC9S12NE64初始化完成,可以完成EMAC和EPHY間的數據接收和發送。要實現系統與以太網上其他設備(如PC機)的通信,只需要實現TCP/IP協議棧就可以了。由于單片機內部資源的不足,難以支持完整的TCP/IP協議棧,故針對各個系統的特點和功能來設定特定的TCP/IP協議棧,僅實現與需要相關的協議即可,如ARP協議、IP協議、ICMP協議、TCP協議、UDP協議、SMTP協議、HTYP協議等。

    系統初始化后進入主程序循環,包括單片機的控制作用和網絡數據傳輸。對于以太網傳輸部分來說.主要有兩個作用:一是對要發送的數據按照以太網數據幀格式進行封裝并發送;二是對接收的以太網數據幀進行解包供給用程序使用。主程序通過嵌入TCP/IP協議來實現單片機的以太網通信。

    4  結束語

    筆者用MC9S12NE64型16位單片機實現了基于TCP/IP協議的嵌入式以太網通信。隨著數字化、智能化儀器的飛速發展,采用以太網進行通信的應用將會越來越廣泛。MC9S12NE64內置了以太網MAC層和物理層,用它可以方便地實現單電路以太網連接。適用于工業控制、保安系統、用戶卡表、商業自動化、樓宇控制、照明治理、醫療檢測、自動售貨機環境監控器、銷售設備終端和家庭自動化等。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 革吉县| 高唐县| 保定市| 杂多县| 台南县| 芷江| 临桂县| 乌鲁木齐县| 裕民县| 晋江市| 大方县| 酒泉市| 康保县| 赤城县| 东莞市| 平顶山市| 荣昌县| 白沙| 阳江市| 云霄县| 灵武市| 贺兰县| 含山县| 长沙市| 元阳县| 吴川市| 屏山县| 合作市| 亚东县| 宾阳县| 扶风县| 龙里县| 礼泉县| 安义县| 仪征市| 马边| 乌兰县| 刚察县| 楚雄市| 尼玛县| 黄陵县|