久久中文视频-久久中文网-久久中文亚洲国产-久久中文字幕久久久久-亚洲狠狠成人综合网-亚洲狠狠婷婷综合久久久久


曙海教育集團論壇嵌入式硬件開發專區嵌入式硬件技術討論專區 → 基于S3C2410處理器的嵌入式以太網接口軟硬件設計


  共有7949人關注過本帖樹形打印

主題:基于S3C2410處理器的嵌入式以太網接口軟硬件設計

美女呀,離線,留言給我吧!
wangxinxin
  1樓 個性首頁 | 博客 | 信息 | 搜索 | 郵箱 | 主頁 | UC


加好友 發短信
等級:青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊:2010-11-12 11:08:23
基于S3C2410處理器的嵌入式以太網接口軟硬件設計  發帖心情 Post By:2010-11-19 9:49:09

一、硬件平臺設計
  設計的嵌入式網關以ARM920T為核心的S3C2410微處理器,通過外擴存儲器、以太網口、串口、JTAG調試接口等構建硬件平臺,其硬件結構框圖如圖1所示。
  圖片點擊可在新窗口打開查看
  1、CPU設計
  CPU是整個嵌入式系統的實時控制ARM9/嵌入式網關核心,它在工業以太網中作為智能節點的主控制器,是整個嵌入式網關的核心。本文選用以ARM920T為核心的S3C2410微處理器,S3C2410是32bit的RISC微處理器,該處理器特別適用于手持式設備以及高性價比、低功耗的網絡設備,它集成了LCD控制器、USBHost、NAND控制器、BUS控制器、中斷控制、功率控制、存儲控制、UART、WatchDog、SPI、SDI/MMC、IS、IC、GPIO、RTC、TIMER/PWM、ADC等豐富的資源。
  2、存儲系統
  嵌入式ARM9/嵌入式網關系統可根據需要定制存儲空間。本文擴展了2片Flash芯片和1片SDRAM。Flash芯片主要有1片韓國現代公司的2MB16bit數據寬度的Flash芯片HY29LV160B191和1片韓國三星公司的16MB的NANDFlash芯片K9F2808UOB1571,SDRAM芯片采用的是1塊韓國現代公司生產的SDRAMHY57V5616201。2MB的Flash芯片HY29LV160B對應的地址空間映射到地址0x00000000上,作為存儲啟動配置參數及異常/中斷向量表的程序空間,系統復位后從其中讀取指令執行程序;使用韓國現代公司的8MB的SDRAMHY57V561620作為系統內存,對應地址空間映射在地址Ox30000000開始,作為程序運行空間和數據空間,啟動代碼將系統映像復制到SDRAM后ARM9/嵌入式網關執行。
  3、串口部分
  串口部分設計使用了2路UART,其中,一路通過電平轉換芯片MAX232,把3.3V的邏輯電平轉換為RS-232-C的邏輯電平進行傳輸,實現ARM與PC機之間的通信,通過超級終端可在PC機上進行調試;另一路串行接口使用MAX1485進行電平轉換,實現從RS-485上接收現場總線發送的信息。
  4、JTAG調試接口
  在嵌入式ARM9/嵌入式網關系統中,芯片的燒寫、調試都需要用到JTAG調試接口,可滿足實時地實現對程序的分析和執行的監控。JTAG(Joint Test Action Group)是IEEE的規范標準,它可以通過現有的JTAG邊界掃描與ARMCPU內核進行通信,屬于完全非插入式(不占用片上資源)調試,它無需目標存儲器,不占用目標系統的任何端口,而這些是普通的駐留監控軟件所必需的。另外,JTAG調試的目標程序是在目標板上執行的,仿真更接近于ARM9/嵌入式網關目標硬件,仿真結果與真實的運行環境更為接近,因此,逐漸成為采用更多的一種調試方式。
  5、以太網接口
  本文ARM9/嵌入式網關以太網接口中所使用的芯片有RTL8019AS、74LVC4245、FB2022(網卡變壓器)。RTL8019AS是性價比高且帶有即插即用功能的全雙工以太網控制器,其主要特點包括:符合EtherNetⅡ與IEEE802.3標準;全雙工,收發可同時達到10Mb/s的速率,內置16KB的SRAM,用于收發緩沖,減低對主處理器的要求;支持UTP、AUI、BNC自動檢測,還支持對10BaseT拓撲結構的自動極性修正;允許4個診斷LED引腳編程輸出。RTL8019AS內部有2塊RAM區,1塊16KB,地址為0x4000~0x7fff;1塊32Byte,地址為0x0000~0x001f。RAM按頁存儲,每256Byte為1頁。本方案中將RTL8019AS的RAM的前12頁(0x4000~0x4Bfff)作為發送緩沖區;后52頁(0x4c00~0x7fff)作為接收緩沖區;第0頁只有32Byte,用來存儲以太網的物理地址。
  RTL8019AS芯片的引腳SA0~SA19為地址總線;SD0~SD15為數據總線;引腳INT0接S32C410芯片的外部中斷信號;引腳AEN是地址使能腳,作為芯片的選通信號,將中斷接到CPU的nGCS3地址映射到bank3。RTL8019AS的地址空間范圍是0x18000300~0x1800031f。引腳IOS0~3設置為接地或空閑,表明RTL8019AS內部寄存器總線地址從300H開始。
  引腳X1、X2接一個20MHz的無源晶振,作為外部時鐘信號輸入;引腳JP接高電平,選擇跳線模式:引腳IORB、IOWB作為輸入輸出讀寫指令端;引腳RSTDRV是復位端,連接復位信號;引腳SMEMRB、SMEMWB是芯片的存儲器讀命令和寫命令。
  引腳TPIN+,TPIN-、TPOUT+,TPOUT-作為媒體接口管腳,是接收IP數據報所需要用到的管腳,在設計網卡芯片電路時通過一個隔離變壓器和RJ-45的網絡外接口相連,外部主機通過以太網網線與RJ-45接口進行連接,實現數據交換。
  隔離變壓器的TD+管腳連接網卡芯片的TPOUT+引腳;TD-連接TPOUT-;RD+連接TPIN+;RD-連接TPIN-。8019通過隔離變壓器與RJ-45連接,實現與主機進行接收和發送IP數據報等工作。
  此外,硬件部分還包括電源電路、晶振電路、復位電路,在此就不一一介紹。
  二、軟件部分設計
  嵌入式ARM9/嵌入式網關系統的軟件部分分為BootLoader的編寫、操作系統與文件系統的移植、應用程序的編寫三部分。
  1、BootLoader的編寫
  BootLoader是系統加電后運行的第1段軟件代碼,即處理器芯片復位后進入操作系統之前執行的一段代碼,主要是為運行操作系統提供基本的運行環境,如初始化CPU堆棧、初始化存儲器系統等。BootLoader代碼與CPU芯片的內核結構、具體芯片和使用的操作系統等因素有關,其功能類似于PC機的BIOS。通過運行BootLoader程序,可以初始化存儲器等硬件設備、建立內存空間的映射圖,從而將系統的軟硬件環境帶到一個合適的狀態,為最終調用操作系統內核準備好正確的環境。
  其一般編寫的步驟為:
  (1)屏蔽所有的中斷。為中斷提供服務通常是操作系統或設備驅動程序的責任,因此,在BootLoader的執行全過程中可以不必響應任何中斷;
  (2)設置中斷向量;
  (3)設定存儲器控制寄存器;
  (4)初始化堆棧和寄存器。系統堆棧初始化取決于用戶使用了哪些中斷,以及系統需要處理哪些錯誤類型、并且定義處理器的幾種工作方式。一般來說管理者堆棧必須設置,如果使用了IRQ中斷,則IRQ堆棧也必須設置;
  (5)如有必要則需要改變處理器模式、狀態;
  (6)初始化C語言所需的存儲器空間。為正確運行應用程序,在初始化期間應將系統需要讀寫的數據和變量從ROM拷貝到RAM中。一些要求快速響應的程序,如中斷處理程序,需要在RAM中運行;如果使用Flash,對Flash的擦除和寫入操作也是在RAM里運行的。
  嵌入式系統的啟動程序是嚴重依賴于硬件的,所以需要用匯編語言來進行編寫。完成上述步驟后,系統就完成了對硬件和軟件運行環境的初始化。最后將實時操作系統代碼從Flash讀入到內存空間中,開始運行實時操作系統。
  2、操作系統與文件系統的移植
  Linux作為一種優秀的操作系統,近幾年在嵌入式領域異軍突起,成了最有潛力的嵌入式操作系統。突出的一個優點就是免版稅和開放源碼,另外它可應用于多種硬件平臺,具有良好的移植性、高的可靠性、優秀的網絡功能、完備的文件系統以及豐富的API,為嵌入式網關提供了強大的軟件支持。因此,本文選擇Linux作為嵌入式網關的操作系統。
  對Linux的移植有以下幾個步驟:
  (1)下載Linux源代碼,建立交叉編譯環境;
  (2)配置和編譯內核;
  (3)制作文件系統,編寫相應的設備驅動程序;
  (4)下載,調試和執行內核,并在文件系統中添加自己的應用程序。
  3、應用程序的編寫
  本文利用Socket套接字和TCP/IP協議編寫了一個簡單的客戶機/服務器模式的網絡應用程序。因為本系統只是起到網關的作用,只需實現現場總線和以太網上位機兩方之間的通信,并不需要處理其數據的邏輯意義和內容。在這種模式下,以太網上位機被設定為服務器,它運行了服務器端的應用程序。該程序主要用于監聽服務器端口、接受客戶端的連接請求、接受客戶端的信息、向客戶端發送信息等。網關系統中運行的是客戶端程序,該程序主要是用于申請連接到服務器、將現場總線方發來的消息向服務器發送、處理服務器發來的信息、將這些信息發送給現場總線系統。應用程序軟件流程如圖2所示。
  圖片點擊可在新窗口打開查看
  軟件中調用的函數主要有:
  (1)intsocket(intfamily,inttype,intprotocol)。此函數為通信創建一個端口,若正常調用將返回一個整型的文件描述符,錯誤調用將返回-1。
  (2)intbind(intsockfd,conststructsockaddr*address,size-taddress-len)。此函數一旦Socket調用成功并返回了一個文件描述符,便將該Socket與服務器本機上一個端口相關聯,就可以在該端口監聽服務請求。該函數只用于服務器端程序,客戶端無須調用此函數。
  (3)intlisten(ints,intbacklog)。服務器用來監聽是否有服務請求。
  (4)intaccept(intsockfd,void*addr,int*addrlen)。連接端口的服務請求。但某個客戶端試圖與服務器監聽的端口連接時,該連接請求將排隊等待服務器調用此函數接受它。
  (5)intsend(intsockfd,constvoid*msg,intlen,intflags);recv(intsockfd,void*buf,intlen,unsignedintflags)。發送和接收數據。
  (6)intconnect(intsockfd,structsockaddr*serv-addr,intaddrlen)。此函數用來與遠端服務器建立一個TCP連接。
  (7)intclose(intsockfd)。結束數據傳輸。

支持(0中立(0反對(0單帖管理 | 引用 | 回復 回到頂部

返回版面帖子列表

基于S3C2410處理器的嵌入式以太網接口軟硬件設計








簽名
主站蜘蛛池模板: 国产精品久久久久久久久福利 | 免费高清毛片在线播放视频 | 538prom精品视频在放免费 | 99视频一区| 免费一级做a爰片性色毛片 免费一极毛片 | 成人公开视频 | 91热久久免费精品99 | 92手机看片福利永久国产 | 亚洲国产精品a在线 | 欧美三级黄色大片 | 搞黄网站免费看 | 欧美在线做爰高清视频 | 窝窝午夜精品一区二区 | 一区二区三区在线观看视频 | 成年人在线免费网站 | 521av香蕉| 久久网站免费观看 | 久久久香蕉 | 精品国产欧美另类一区 | 日本一级毛片免费播放 | a级毛片视频免费观看 | 91av久久| 久久精品视频在线 | 精品无码久久久久久国产 | 亚洲精品99久久一区二区三区 | 91亚洲国产成人久久精品网站 | 久久99国产精一区二区三区 | 日本免费成人网 | 久久成年片色大黄全免费网站 | 美国一级毛片oo | 午夜不卡av免费 | 一级一片在线播放在线观看 | www.乱| 日本三级网站在线线观看 | 亚洲国内 | 久久的精品99精品66 | 老少配性xxxxxx | 在线视频一区二区三区在线播放 | 亚洲成成品网站有线 | 一区二三国产 | 国产午夜免费视频 |