<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 單片機典型案例開(kāi)發(fā)(四)

單片機典型案例開(kāi)發(fā)(四)

作者: 時(shí)間:2012-05-28 來(lái)源:網(wǎng)絡(luò ) 收藏

  然而,這些監控系統的數據傳輸多采用RS-232、RS-485 以及各種現場(chǎng)總線(xiàn),這些方式有些通信速度不夠快,有些距離不夠遠,且各種總線(xiàn)之間難于實(shí)現互連和互操作。以太網(wǎng)作為目前應用最為廣泛的局域網(wǎng),在工業(yè)自動(dòng)化和過(guò)程控制領(lǐng)域得到了越來(lái)越多的應用。同時(shí),隨著(zhù)Internet 的普及,現代通信技術(shù)的進(jìn)步,基于TCP/IP 和Client/Server 架構的分布式監控技術(shù)也日趨成熟。把嵌入式系統連接到Internet 上,就可以方便、低廉地把信息傳送到世界的任何一個(gè)地方。

  傳統的遠程監控系統一般采用C/S 模型的方式,主要針對大型的設備進(jìn)行監控。對于如攝像頭圖象監控p家用儀表p門(mén)禁控制系統等小型的設備的監控就需要采用低成本的方案。

  鑒于此,在低成本的系統上移植精簡(jiǎn)的TCP/IP 協(xié)議簇,實(shí)現對于小型設備遠程監控是最佳選擇。該系統以Web 方式實(shí)現,用戶(hù)可以在任何一臺裝有瀏覽器的PC 機上進(jìn)行遠程監視與控制,具有價(jià)格低廉、操作方便、界面友好等優(yōu)點(diǎn)。傳統的遠程監控系統模型與本系統采用的模型如圖1 和圖2 所示。

  圖1 傳統遠程監控系統模型

  圖1 傳統遠程監控系統模型

  圖2 單片機監控系統模型

  圖2 監控系統模型

  2. 系統硬件設計

  本系統以 Cygnal 公司的完全集成的混合信號系統級芯片(SOC)C8051F020 為核心,采用Realtek 公司的10M 自適應以太網(wǎng)控制器RTL8019AS 實(shí)現系統的網(wǎng)絡(luò )接口部分。

  SRAM 部分用于存放大量的數據信息。數據采集部分用于采集系統需要監控的設備的運行情況,由于C8051F020 內部帶有真正12 位100 ksps 的8 通道ADC 帶PGA 和模擬多路開(kāi)關(guān),還有兩個(gè)12 位DAC 可編程更新時(shí)序,可以方便的進(jìn)行模擬信號采集和對外設進(jìn)行控制。

  C8051F020 單片機內置64K FLASH 程序存儲器、4K 內部SRAM,可以嵌入TCP /IP 協(xié)議, 從而實(shí)現嵌入式Web Sever 的功能。RTL8019AS 集成了介質(zhì)訪(fǎng)問(wèn)控制子層(MAC)和物理層的性能,與單片機的接口簡(jiǎn)單,可以方便地用來(lái)設計基于ISA 總線(xiàn)的系統。另外,它還具有與NE2000 兼容、軟件移植性好以及價(jià)格低廉等優(yōu)點(diǎn),所以特別適合用于嵌入式系統。

  圖3 系統框圖

  圖3 系統框圖

  3.系統軟件設計

  3.1 軟件流圖設計

  軟件的實(shí)現主要是根據數據在網(wǎng)絡(luò )中傳輸的方向和數據的流向來(lái)實(shí)現的。在本設計中數據的流向為:請求信息從局域網(wǎng)中來(lái),通過(guò)RJ 45 送到RTL80l9AS,處理后的數據包送入單片機系統的協(xié)議棧,由協(xié)議棧對數據包進(jìn)行解析,得到原始請求信息。請求信息再經(jīng)過(guò)單片機系統的處理,產(chǎn)生回復信息?;貜托畔⒌骄钟蚓W(wǎng)的過(guò)程與上面正好相反。整個(gè)系統的軟件流程如上圖4 所示。

  圖4 軟件框圖

  圖4 軟件框圖

  3.2 RTL8019 接收與發(fā)送數據

  1.RTL8019 芯片初始化主要是將網(wǎng)卡設置成正常的模式,跟外部網(wǎng)絡(luò )連接。清除所有中斷標志位,讓芯片開(kāi)始工作。

  2.對RTL8019 接收數據操作,有查詢(xún)和中斷兩種方式。因為單片機的速度和PC 機相差太遠,而且還有一些采集任務(wù),本系統不采用中斷方式,用查詢(xún)方式。在查詢(xún)方式下,通過(guò)查詢(xún)CURR 和BNRY 兩個(gè)寄存器的值來(lái)判斷是否收到一幀數據。當BNRY+1 與CURR不相等,說(shuō)明接收緩沖區接收到了新的數據幀。圖5 為RTL8019 報頭格式,接收部分子程序如下:

  UCHAR xdata * rcve_frame(void) //如收到有效數據包,返回收到的數據,否則返回NULL

  圖5 RTL8019 報頭格式

  圖5 RTL8019 報頭格式

  3.數據的發(fā)送包含三個(gè)步驟:封裝數據包;通過(guò)遠程DMA 將數據包送入RTL8019AS的數據發(fā)送緩沖區;通過(guò)RTL8019 的本地DMA 將數據送入FIFO 進(jìn)行發(fā)送。具體過(guò)程如下:

 ?。?)包在發(fā)送前應該按規定的格式封裝好,格式如下圖6 所示:

  圖6 MAC 幀首部

  圖6 MAC 幀首部

 ?。?)把上面的數據包通過(guò)遠程DMA 寫(xiě)入RTL8019AS 的數據發(fā)送緩沖區;

 ?。?)啟動(dòng)本地DMA,把數據發(fā)送出去,數據包長(cháng)度最小為60 字節,最大1514 字節。

  發(fā)送子程序為:void send_frame(UCHAR xdata * outbuf,UINT len)//發(fā)送一個(gè)數據包3.3 TCP/IP 協(xié)議棧的實(shí)現。

3.3.1 ARP 協(xié)議的實(shí)現

  ARP 地址解析協(xié)議的本質(zhì)是完成網(wǎng)絡(luò )地址到物理地址的映射。物理地址有以太網(wǎng)和令牌環(huán)網(wǎng)兩種基本類(lèi)型,網(wǎng)絡(luò )地址特指IP 地址。具體到以太網(wǎng),使用的是動(dòng)態(tài)綁定轉換的方法,但是會(huì )遇到許多細節問(wèn)題,例如減少廣播,ARP 包丟失,物理地址變更(更換網(wǎng)卡)、移動(dòng)(移動(dòng)設備到另一子網(wǎng))、消失(關(guān)機)等。一般是設置ARP 高速緩存,通過(guò)學(xué)習、老化、更新、溢出算法處理ARP 映射表來(lái)解決這些問(wèn)題。整個(gè)ARP 處理過(guò)程,主要用5 個(gè)函數實(shí)現。

  在實(shí)現網(wǎng)卡驅動(dòng)程序后,所有ARP 處理操作就是填寫(xiě)ARP 包。主要程序代碼編制如下:

 ?。?)void init_arp(void)//完成ARP 表初始化,概括說(shuō)就是ARP 表state 字段清0

 ?。?)void arp_send(UCHAR * hwaddr,ULONG ipaddr,UCHAR msg_type)//完成ARP 請求

 ?。?)void arp_rcve(UCHAR xdata * inbuf)// 完成響應操作

 ?。?)UCHAR xdata * arp_resolve(ULONG dest_ipaddr) //完成從cache 里面查找對應//IP 地址的物理地址,如果沒(méi)有,就發(fā)送ARP 請求

  3.3.2 IP 協(xié)議的實(shí)現

  網(wǎng)際協(xié)議 IP 是TCP/IP 協(xié)議族中最為核心的協(xié)議,它的主要功能是負責把數據交付給主機,當目標主機與原主機處于不同的物理網(wǎng)絡(luò )中時(shí),IP 負責把數據包路由到相應的目標網(wǎng)絡(luò )上。Internet 上所有的數據都以IP 數據包格式傳輸。IP 協(xié)議最大的特點(diǎn)是提供不可靠的和無(wú)連接的數據包傳送服務(wù)。IP 協(xié)議主要實(shí)現以下兩個(gè)子程序:

手機電池相關(guān)文章:手機電池修復


單片機相關(guān)文章:單片機教程


單片機相關(guān)文章:單片機視頻教程


單片機相關(guān)文章:單片機工作原理


晶振相關(guān)文章:晶振原理


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>