新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 16位單片機實現(xiàn)信息家電連接internet的解決方案

        16位單片機實現(xiàn)信息家電連接internet的解決方案

        作者: 時間:2009-09-02 來源:網(wǎng)絡 收藏

        4 控制以太網(wǎng)卡進行數(shù)據(jù)傳輸
        接入以太網(wǎng)必須嵌入TCP/IP協(xié)議,其加載TCP/IP協(xié)議控制以太網(wǎng)卡進行數(shù)據(jù)傳輸,并通過TCP/IP協(xié)議到互聯(lián)網(wǎng)的基本思路是:在遠程控制端進行的操作首先通過路由器尋找到目標,再通過網(wǎng)卡的ISA接口傳入。在單片機中加載的驅動程序將之轉換成物理幀格式,最后由TCP/IP協(xié)議將之轉換為應用層控制命令。因為單片機內(nèi)部資源有限,要完成上網(wǎng)任務必須精簡TCP/IP協(xié)議,本系統(tǒng)中使用了ARP、RARP、IP、UDP等部分協(xié)議,即可保證單片機接入以太網(wǎng),亦保證足夠小的代碼量。單片機主要完成網(wǎng)絡數(shù)據(jù)的解包和串口數(shù)據(jù)的打包,當以太網(wǎng)有數(shù)據(jù)到達該設備,單片機采用查詢方式讀取網(wǎng)絡數(shù)據(jù)并分析,如果是ARP(物理地址解析協(xié)議)數(shù)據(jù)包,則轉入ARP處理程序,并發(fā)送RARP數(shù)據(jù)包,將IP地址和物理地址加入到局域網(wǎng)中建立映射。如果是UDP數(shù)據(jù)包且IP地址和端口號正確,則接收數(shù)據(jù)包,數(shù)據(jù)解包后,將數(shù)據(jù)部分通過串口輸出,控制現(xiàn)場設備。反之,如果現(xiàn)場設備通過串口發(fā)送數(shù)據(jù)到單片機,單片機將數(shù)據(jù)按照UDP協(xié)議格式打包,送入RTL8019AS,由RTL8019AS將數(shù)據(jù)輸出到局域網(wǎng)中。根據(jù)需要還可以在收到串口數(shù)據(jù)時,先完成數(shù)據(jù)預處理,再將處理好的數(shù)據(jù)送到局域網(wǎng)。
        5軟件部分
        軟件設計主要包括:以太網(wǎng)控制器初始化程序、驅動程序、TCP/IP協(xié)議棧程序、系統(tǒng)網(wǎng)絡配置程序。以太網(wǎng)控制器驅動程序用于設置以太控制芯片的工作狀態(tài)即工作方式,分配收發(fā)數(shù)據(jù)的緩沖區(qū);系統(tǒng)網(wǎng)絡配置程序用于給監(jiān)測系統(tǒng)分配IP地址及域名。限于篇幅,下面僅給出了采用匯編語言編寫的RTL8019AS初始化的部分代碼。
        .include hardware.inc;//配置單元定義
        .public _init //RTL8019AS初始化子程序
        _init:
        R1=0xffff; //初始化A口為輸出
        [P_IOA_Attrib]=R1;
        [P_IOA_Dir]=R1;
        R1=0xfc07; //將IOB0~IOB2,IOB10~IOB15設置為輸出,其他為輸入
        [P_IOB_Attrib]=R1;
        [P_IOB_Dir]=R1;
        R1=0x0001;//選中00H寄存器
        [P_IOB_Data]=R1;
        R1=0x0021; //選擇寄存器頁面0,芯片不工作
        [P_IOA_Data]=R1;
        [P_IOB_Data]=R1;
        R1=0x004c;//設置接收緩沖區(qū),頁地址為0x4c~0x7f
        [P_IOA_Data]=R1;
        R1=0x0001;//選中02H寄存器
        [P_IOB_Data]=R1;
        R1=0x0080;
        [P_IOA_Data]=R1;
        ...
        R1=0x0801; //選中01H寄存器
        R1=0x0001; //選中00H寄存器
        [P_IOB_Data]=R1;
        R1=0x0061; //選擇寄存器頁面1
        [P_IOA_Data]=R1;
        ...
        R1=0x0001;
        [P_IOB_Data]=R1;
        R1=0x0022; //選擇寄存器頁面0,芯片進入工作狀態(tài)
        [P_IOA_Data]=R1;
        retf; // 程序返回
        6 結束語
        利用16位單片機SPCE061A驅動以太控制芯片RTL8019AS,經(jīng)由嵌入式網(wǎng)關接入的方式,可以方便、低廉地將的工作狀態(tài)送往遠程PC進行監(jiān)控。這種低成本、高性能的方案,具有可靠靈活的特點,適用于通信速率不大,允許延時的家庭自動化設備。用戶可根據(jù)需要,按上述方法,為傳統(tǒng)的賦予接入的能力。

        本文引用地址:http://www.104case.com/article/173617.htm


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 蛟河市| 永福县| 科尔| 栾城县| 瑞金市| 南京市| 阳泉市| 西充县| 馆陶县| 绥化市| 奉新县| 长治市| 武乡县| 财经| 磐安县| 那坡县| 蓬溪县| 禹州市| 宁明县| 高要市| 巩义市| 东兴市| 凌源市| 准格尔旗| 互助| 巴青县| 浙江省| 大关县| 新巴尔虎右旗| 浏阳市| 伽师县| 日照市| 沿河| 象州县| 西乌| 金坛市| 商城县| 大埔县| 兴海县| 东城区| 阳原县|