MC9S12NE64型單片機的以太網(wǎng)連接應用介紹
3 MC9S12NE64的簡(jiǎn)單應用本文引用地址:http://dyxdggzs.com/article/171631.htm
3.1 硬件設計
利用MC9S12NE64可以構成不同功能的網(wǎng)絡(luò )終端節點(diǎn),如網(wǎng)絡(luò )服務(wù)器、帶因特網(wǎng)功能的設備、遠程監控(數據采集,診斷)、對現場(chǎng)設備的遠程控制、遠程設備通過(guò)電子郵件或文字尋呼機發(fā)送消息等。
基于MC9S12NE64最少外圍器件的系統硬件電路原理圖如圖2所示。此最小系統由80引腳的MC9S12NE64與外圍器件組成,電路中帶有背景調試接頭J1;5個(gè)LED狀態(tài)指示燈(分別用來(lái)顯示網(wǎng)絡(luò )連接狀態(tài),包括EPHY是否沖突、連接是否建立、是否接收數據、連接速度、雙工模式);必需的偏置電阻R5;高速局域網(wǎng)電磁隔離模塊(即RJ45以太網(wǎng)接口)。其中PHY_TXP和PHY_TXN為發(fā)送線(xiàn),PHY_RXP和PGY_RXN為接收線(xiàn)。設計時(shí),MC9S12NE64的物理端口與隔離變壓器連接時(shí)必須符合IEEE802.3對物理層規范的要求,如RJ45的插孔與隔離變壓器的間隔應盡量小,輸出和輸入差分信號對的走線(xiàn)要很好的隔離,確保電源的額定負載電流不小于300mA。設計時(shí)還應注意系統時(shí)鐘的要求,MC9S12NE64只支持皮爾斯型振蕩電路,晶振的精度應高于25ppm。系統中MC9S12NE64工作在正常的單片模式,其內部穩壓電源處于工作狀態(tài)。
3.2 MC9S12NE64的初始化
MC9S12NE64單片機在工作之前。必須進(jìn)行必要的初始化。主要包括時(shí)鐘及復位發(fā)生器(CRG)模塊、EMAC模塊、EPHY模塊等。雖然MC9S12NE64上的EMAC和EPHY被設計為兩個(gè)獨立的模塊,但如果用到內部的EPHY,則EMAC和EPHY必須同時(shí)進(jìn)行初始化。
MC9S12NE64的初始化過(guò)程如下:
(1)初始化時(shí)鐘及復位發(fā)生器模塊來(lái)產(chǎn)生25MHz的內部總線(xiàn)時(shí)鐘,這一過(guò)程通過(guò)設置時(shí)鐘及復位發(fā)生器(CRG)模塊的寄存器表來(lái)完成。
(2)設置EPHYCTL0寄存器的DIS10和DIS100位為1,使EPHY時(shí)鐘無(wú)效,直到EMAC和EPHY配置完畢。
(3)通過(guò)EPHYCTL1寄存器的:EPHYADD0、E-PHYADD1、EPHYADD2、EPHYADD3、EPHYADD4來(lái)配置MII請求的EPHY地址。
(4)配置自動(dòng)協(xié)商模式。設置EPHYCTL0寄存器的ANDIS位為0.使用自動(dòng)協(xié)商模式。
(5)設置EPHYCTL0寄存器的LEDEN位為1允許EPHY驅動(dòng)LED信號。設置EPHYCTL0寄存器的EPHYIEN位為1使EPHY中斷有效。設置
EPHYCTL0寄存器的EPHYEN位為1使EPHY有效工作,這樣就可以實(shí)現EMAC和EPHY間的介質(zhì)無(wú)關(guān)接口(MII)操作。
(6)設置MCMST寄存器的MDCSEL位為0xA,來(lái)配置EMAC管理數據時(shí)鐘(EMACMDC)。
(7)設置BUFCFG寄存器的BUFMAP位來(lái)配置EMAC以太網(wǎng)緩沖區的大小。BUFMAP的值用來(lái)確定系統RAM中用戶(hù)RAM和EMAC緩沖區的比例。BUFMAP最大為4,這時(shí)單個(gè)緩沖區的大小為1.5K字節,正好可以存放一個(gè)最大的以太網(wǎng)幀。大于緩沖區大小的數據包將被過(guò)濾掉,設計時(shí)應合理選擇。設置BUFCFG寄存器的MAXFL位來(lái)指定接受的最大幀長(cháng)度,使緩沖區起到了數據過(guò)濾的作用。
(8)通過(guò)MACAD寄存器來(lái)配置6字節的MAC地址。如果設備不連接到因特網(wǎng),則MAC地址可自行定義。
(9)設置ETCTL寄存器為0x17來(lái)控制網(wǎng)絡(luò )上傳輸的數據類(lèi)型。
(10)通過(guò)設置RXCTL寄存器的PROM、CON-MC和BCREJ位來(lái)配置EMAC的MAC地址過(guò)濾模式。如果不是自動(dòng)協(xié)商模式,則還需要設置RFCE位來(lái)實(shí)現接收流控制。
(11)設置NETCTL寄存器為0x81來(lái)配置EMAC的工作模式,并使EMAC正常工作。
(12)設置IMASK寄存器來(lái)配置允許的EMAC中斷信號,如需要允許某種中斷請求信號,則將相應的位置1。
(13)設置TXCTS寄存器的PTRC位和設置PTI-ME寄存器來(lái)初始化和傳遞暫停持續時(shí)間。
(14)設置系統中斷為允許系統中斷。
(15)通過(guò)EMAC MII管理接口來(lái)設置EPHY,包括設置速度、雙工模式和流控制,設置EPHY中斷控制寄存器來(lái)配置EPHY中斷控制。
(16)在自動(dòng)協(xié)商模式下,通過(guò)設置EPHYCTL0寄存器的DIS10和DIS100位為0來(lái)啟動(dòng)EPHY時(shí)鐘發(fā)生器。當自動(dòng)協(xié)商完成且連接建立后,協(xié)商暫定和雙工設置由EPHY MII寄存器決定。EMAC必須由RXCTS寄存器的FRCE位和NETCTL的FDX位所設定的配置來(lái)更新協(xié)商暫定和雙工設置。
至此。MC9S12NE64初始化完成,可以完成EMAC和EPHY間的數據接收和發(fā)送。要實(shí)現系統與以太網(wǎng)上其他設備(如PC機)的通信,只需要實(shí)現 TCP/IP協(xié)議棧就可以了。由于單片機內部資源的不足,難以支持完整的TCP/IP協(xié)議棧,故針對各個(gè)系統的特點(diǎn)和功能來(lái)設定特定的TCP/IP協(xié)議棧,僅實(shí)現與需要相關(guān)的協(xié)議即可,如ARP協(xié)議、IP協(xié)議、ICMP協(xié)議、TCP協(xié)議、UDP協(xié)議、SMTP協(xié)議、HTYP協(xié)議等。
系統初始化后進(jìn)入主程序循環(huán),包括單片機的控制作用和網(wǎng)絡(luò )數據傳輸。對于以太網(wǎng)傳輸部分來(lái)說(shuō).主要有兩個(gè)作用:一是對要發(fā)送的數據按照以太網(wǎng)數據幀格式進(jìn)行封裝并發(fā)送;二是對接收的以太網(wǎng)數據幀進(jìn)行解包供應用程序使用。主程序通過(guò)嵌入TCP/IP協(xié)議來(lái)實(shí)現單片機的以太網(wǎng)通信。
4 結束語(yǔ)
隨著(zhù)數字化、智能化儀器的飛速發(fā)展,采用以太網(wǎng)進(jìn)行通信的應用將會(huì )越來(lái)越廣泛。MC9S12NE64內置了以太網(wǎng)MAC層和物理層,用它可以方便地實(shí)現單電路以太網(wǎng)連接。適用于工業(yè)控制、保安系統、用戶(hù)卡表、商業(yè)自動(dòng)化、樓宇控制、照明管理、醫療檢測、自動(dòng)售貨機環(huán)境監控器、銷(xiāo)售設備終端和家庭自動(dòng)化等。
評論