基于SEP3203的嵌入式以太網(wǎng)口的設計
關鍵詞 串口;以太網(wǎng)口;SEP3203;Nucleus
1 引言
在自動化控制及其他民用設備、工業(yè)控制如電力設備系統(tǒng)等領域,眾多設備的對外通訊接口仍然是低速串口。因此現(xiàn)有系統(tǒng)的缺點是:無法集中、全面、準確而實時地監(jiān)控數(shù)據(jù)。隨著以太網(wǎng)在工業(yè)、商業(yè)領域的大規(guī)模使用以及網(wǎng)絡自動化強勁勢頭的到來,用戶與供應商迫切需要在任何時間和任何地點都可以實時訪問數(shù)據(jù)和進行控制,做到遠程快速故障分析與處理、設備的遠程維護,以便提高質(zhì)量,提高工作效率并降低整體成本。完全換掉這些串口通訊的設備是既不經(jīng)濟也不可行的。針對一些實際需求,采用串口以太網(wǎng)轉換器就是解決這些問題的最佳解決方案。本課題串口以太網(wǎng)轉換器正是在這一要求下設計出來的產(chǎn)品, 本文就是本課題下的子課題部分。
2 基于ARM7TDMI的SEP3203微處理器簡介
ARM7TDMI處理器是ARM7處理器系列成員之一,是目前應用較廣的32位高性能嵌入式RISC處理器,SEP3203[1]是東南大學國家專用集成電路系統(tǒng)工程技術研究中心基于ARM7TDMI處理器內(nèi)核設計的16/32位RISC微處理器芯片。它面向低成本手持設備和其它通用嵌入式設備,為用戶提供了豐富的外設、低功耗管理和低成本的外存配置。
3 串口以太網(wǎng)轉換器中與以太網(wǎng)接口相關的電路結構
為了實現(xiàn)該轉換模塊的研究,首先要選擇一個硬件平臺即嵌入式處理器。由于ARM是
基于精簡指令系統(tǒng)(RISC)的32位內(nèi)核,代碼效率高,運行速度快,綜合性能強,在基于ARM體系結構的嵌入式CPU中,基于ARM7TDMI體系結構的SEP3203嵌入式微處理器擁有較好的技術支持,因此本轉換器選擇SEP3203作為硬件平臺;轉換系統(tǒng)必須要有電源,供整個系統(tǒng)用;系統(tǒng)工作時需要有工作時鐘,因此本系統(tǒng)需要有時鐘電路;由于用戶需要的轉換器要有串口、USB和以太網(wǎng)口下載等功能,由于本文只針對以太網(wǎng)口,其它兩個接口本文不作介紹。以太網(wǎng)口與嵌入式芯片之間要有一個網(wǎng)絡模塊,現(xiàn)把與以太網(wǎng)口相關電路結構的部分設計顯示如圖1所示。
圖1 以太網(wǎng)接口部分的相關電路結構
4 網(wǎng)絡接口電路的硬件設計
SEP3203芯片內(nèi)部沒有集成網(wǎng)絡模塊,但SEP3203芯片設計的接口豐富,可以方便地擴展??紤]使用中可能對網(wǎng)速的要求比較高,因此本系統(tǒng)選用了10M的以太網(wǎng)接口。本系統(tǒng)的網(wǎng)絡接口采用REALTEK公司的RTL8019芯片。RTL8019AS 是一種高度集成的以太網(wǎng)芯片,能簡單的實現(xiàn)Plug and Play 并兼容NE2000。由于它擁有三種等級的掉電模式,所以它是綠色電腦的網(wǎng)絡設備的理想選擇。在全雙工模式下,如果是連接到一個同樣是全雙工的交換機或集線器,就可實現(xiàn)同時接收和發(fā)送[2]。
RTL8019AS支持16KByte、32KByte、64KByte的BROM,另外還支持FLASH MENORY和頁訪問方式,最大支持4MByte(16K×256),此外還支持在運行完BROM 后釋放內(nèi)存以供系統(tǒng)其他程序的運行。網(wǎng)絡接口模塊的系統(tǒng)連接示意圖如圖2所示。
圖2 以太網(wǎng)接口系統(tǒng)連接圖
圖3 RJ45網(wǎng)絡接口電路圖
由圖2可知,以太網(wǎng)接口通過系統(tǒng)總線外擴而成。RTL8019AS的地址使用方式有5位、8位、11位三種。使用5位地址就可以訪問RTL8019AS所有的寄存器,實現(xiàn)最簡單的網(wǎng)絡功能。本系統(tǒng)使用8位地址滿足了操作系統(tǒng)對遠程DMA端口的需求。
網(wǎng)絡接口模塊和SEP3203微處理器的連接線比較簡單,在PCB板上布線比較規(guī)則。網(wǎng)絡接口芯片RTL8019的實際電路連接圖見參考文獻[3]。網(wǎng)口選用了內(nèi)置變壓及指示燈的RJ45網(wǎng)絡接口,實際電路圖如圖3[4]所示, 對比SEP3203微處理器的SRAM接口協(xié)議,由于總線沒有等待信號,所以沒有使用IOCHRDY信號。由于SEP3203微處理器總線的最低數(shù)據(jù)位寬是16位,所以IOCS16B固定置于16位方式。
5 軟件平臺Nucleus
綜合考慮各個因素,我們選擇了嵌入式實時操作系統(tǒng)Nucleus。Nucleus PLUS是美國著名RTOS廠商(ATI)(Accelerated Technology Inc)公司為實時嵌入式應用而設計的一個搶先式多任務操作系統(tǒng)內(nèi)核,其95%的代碼是用ANSI C寫成的,非常便于移植并支持大多數(shù)類型的處理器。Nucleus PLUS是一組C函數(shù)庫,下載到目標板的RAM中或直接燒錄到到目標板的ROM中執(zhí)行。在典型的目標環(huán)境中,Nucleus PLUS核心代碼一般不超過20K字節(jié)大小,內(nèi)核規(guī)模非常小。Nucleus PLUS除提供功能強大的內(nèi)核操作系統(tǒng)外,還提供種類豐富的功能模塊。例如用于通訊系統(tǒng)的局域和廣域網(wǎng)絡模塊,支持圖形應用的實時化Windows模塊,支持nternet網(wǎng)的WEB產(chǎn)品模塊,工控機實時BIOS模塊,圖形化用戶接口,以及應用軟件性能分析模塊等,用戶可以根據(jù)自己的應用來選擇不同的應用模塊。
6 網(wǎng)絡接口通信的設計
網(wǎng)絡接口的硬件將網(wǎng)絡上傳送來的數(shù)據(jù)送入系統(tǒng)內(nèi)存中,并通知操作系統(tǒng)有網(wǎng)絡數(shù)據(jù)到達。通常,網(wǎng)絡接口使用中斷機制來完成這一任務,一個中斷時處理器將正常的處理掛起,跳轉到設備驅動程序的代碼段執(zhí)行。此時,由設備驅動程序管理所有細節(jié)。設備驅動軟件通知協(xié)議棧已經(jīng)有一個分組到達,并要求進行相應的處理。當設備驅動軟件完成這些繁瑣的處理工作后,他將從中斷返回,處理器繼續(xù)從中斷發(fā)生處往下執(zhí)行。在本協(xié)議棧中,設備驅動程序對上層應用屏蔽了接收和發(fā)送的細節(jié)。用戶只需要調(diào)用相應的套接字即可以完成數(shù)據(jù)的接收和發(fā)送。比如用戶要使用非阻塞方式接收和發(fā)送數(shù)據(jù),可以使用Select(),在Select 的timeout 參數(shù)選擇NO_PREEMPT,即可以非阻塞方式接收發(fā)送。在本TCP/IP 實現(xiàn)中,協(xié)議棧初始化是依靠調(diào)用NETI_Init()完成的。NETI_Init()完成兩個工作,首先是對網(wǎng)絡協(xié)議棧的初始化[5], 然后就對系統(tǒng)所使用的網(wǎng)絡設備進行初始化。
網(wǎng)絡接口通信模塊的流程圖如圖4[1]所示。
流程說明:①程序由Main()函數(shù)開始,調(diào)用taskmain()。②taskmain()調(diào)用sys_ini()對系統(tǒng)初始化,調(diào)hardware_ini()對硬件初始化;調(diào)用vcre_tsk()創(chuàng)建了6個任務,調(diào)用stak_tske()將部分任務放入就緒隊列,調(diào)用sys_sta()啟動系統(tǒng)。③通過系統(tǒng)調(diào)度開啟任
圖4 網(wǎng)絡接口通信流程圖
務demo_main。④函數(shù)demo_main()調(diào)用ne2000_task()開始測試過程。⑤ne2000_task()的
主要功能是:調(diào)用Neti_Init()對網(wǎng)絡設備進行初始化;調(diào)用Nu_add_Route()將缺省網(wǎng)關、
子網(wǎng)掩碼、目標ip添加進路由表;調(diào)用Nu_socket()創(chuàng)建一個sockets;建立sever端的地址信息數(shù)據(jù)結構;調(diào)用 Nu_connect()向sever發(fā)送建立連接的請求,若sever返回確認則連接成功;調(diào)用Nu_send()/Nu_receive()發(fā)送/接收數(shù)據(jù);傳輸完畢調(diào)用Nu_close_socket關閉socket連接,并調(diào)用Nu_sleep()掛起n個周期。
7 系統(tǒng)測試
在PC端運行串口調(diào)試助手,該軟件可從網(wǎng)上免費獲得,軟件運行后根據(jù)實際運行環(huán)境進行設置。經(jīng)測試,模塊轉發(fā)數(shù)據(jù)正常。
8 結論與展望
串口由于其易用性、可靠性及相對于工控設備而言足夠高的通信能力而長盛不衰,而串口設備實現(xiàn)遠程控制及數(shù)據(jù)共享也是大勢所趨。因此,串口以太網(wǎng)轉換器的開發(fā)是有現(xiàn)實意義和社會經(jīng)濟價值的。本課題的目的是實現(xiàn)串行接口的儀器接入網(wǎng)絡使得儀器的使用網(wǎng)絡化。為此本課題介紹了該轉換器以太網(wǎng)口的硬件設計和軟件編程實現(xiàn),并且設計了整機。
因為微處理器對于各種電器設備有良好的接入和控制能力,所以我們實現(xiàn)了微處理器的網(wǎng)絡接入功能后,就在電器的硬件設備和網(wǎng)絡之間建起了一道橋梁,通過它可以實現(xiàn)對各種實時信號儀器儀表家用設施等目標的遠程監(jiān)視。在宏觀上,對各種設備統(tǒng)一管理實現(xiàn)人與系統(tǒng)的和諧的交互,這必將大大提高工作效率,改善工作環(huán)境提升人們的生產(chǎn)生活水平。
本文作者創(chuàng)新點:①本系統(tǒng)采用ARM作為該系統(tǒng)的核心處理器,替代過去低檔CPU,嵌入式實時操作系統(tǒng)可移植到該系統(tǒng)硬件平臺。②本轉換器提供RS232/RS485口到TCP/IP以太網(wǎng)口協(xié)議雙向轉換傳輸,變傳統(tǒng)的串口通訊為網(wǎng)絡通訊,實現(xiàn)串口設備的快速聯(lián)網(wǎng)。采用透明傳輸方式,用戶不用了解復雜的TCP/IP 協(xié)議,甚至不用更改程序即可實現(xiàn)原有串口設備的網(wǎng)絡連接。
參 考 文 獻
[1]時龍興,凌明,王學香,鐘銳.嵌入式系統(tǒng)――基于SEP3203微處理器的應用開發(fā)[M].北京:電子工業(yè)出版社,2006.
[2]徐金波.基于SEP3203微處理器的信息終端的應用研究.[碩士學位論文].東南大學.2006.
[3]REALTEK SEMI-CONDUCTOR CO, LTD.. Full-Duplex Ethernet Controller RTL8019AS Publication release date: August 20,2000
[4] http://www.prochip.com.cn/manage/file/GD01DataSheet .pdf
[5]呂昌泰,羅永剛.嵌入式以太網(wǎng)接口的研究與設計.微計算機信息[J].2006(8-2):68-70.