亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于單片機(jī)與CPLD的無(wú)線控制系統(tǒng)

        2009-05-25 09:59:44張九賓張丕狀杜坤坤
        現(xiàn)代電子技術(shù) 2009年1期

        張九賓 張丕狀 杜坤坤

        摘 要:介紹一種基于單片機(jī)與CPLD結(jié)合的傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的無(wú)線控制系統(tǒng)。節(jié)點(diǎn)中單片機(jī)對(duì)無(wú)線命令進(jìn)行譯碼,并對(duì)外圍子模塊進(jìn)行控制,CPLD擴(kuò)展控制系統(tǒng)的并行I/O端口、SPI串行接口等,從而根據(jù)系統(tǒng)需要可擴(kuò)展無(wú)線傳感網(wǎng)絡(luò)節(jié)點(diǎn)的外圍功能模塊。采用單片機(jī)與CPLD模塊化設(shè)計(jì)方法,降低了設(shè)計(jì)成本,方便電路的多次改進(jìn),為傳感器網(wǎng)絡(luò)節(jié)點(diǎn)在不同場(chǎng)合的應(yīng)用提供了一種通用的方法。

        關(guān)鍵詞:?jiǎn)纹瑱C(jī)I/O端口擴(kuò)展;CPLD;控制節(jié)點(diǎn);SPI串行接口擴(kuò)展

        中圖分類號(hào):TP302.1 文獻(xiàn)標(biāo)識(shí)碼:B

        文章編號(hào):1004-373X(2009)01-094-03

        Wireless Control System Based on Single Chip Computer and CPLD

        ZHANG Jiubin,ZHANG Pizhuang,DU Kunkun

        (School of Information and Communication Engineering,North University of China,Taiyuan,030051,China)

        Abstract:

        A wireless control system of sensor network nodes with the combination of single chip computer and CPLD is introduced.In the node,single chip computer decodes the wireless commands and controls expansion modules,CPLD expands control system parallel I/O ports and serial SPI ports,the system can expand periphery function modules according to need.The way of module design with the combination of single chip computer and CPLD can low cost price,facilitate the circuit several times to improve and provide a common method for the sensor network nodes in the application of different occasions.

        Keywords:single chip computer I/O expansion;CPLD;control node;SPI serial interface expansion

        0 引 言

        自單片機(jī)引入我國(guó)以來(lái),相關(guān)產(chǎn)品的普及促使單片機(jī)的應(yīng)用設(shè)計(jì)日益廣泛。傳統(tǒng)的單片機(jī)控制系統(tǒng)由單片機(jī)以及外圍擴(kuò)展芯片組成,但是這些外圍芯片一般具有接線重復(fù)性高、體積大等缺點(diǎn)??删幊踢壿嫼陠卧蜻壿媺K之間的相互連線在同一封裝內(nèi),受外界干擾影響小,電磁兼容(EMC)性能好。對(duì)設(shè)計(jì)者來(lái)說(shuō),CPLD器件最大的優(yōu)點(diǎn)在于可現(xiàn)場(chǎng)編程,改變邏輯關(guān)系時(shí),無(wú)需更改外部線路板,只需用圖形語(yǔ)言程序或硬件描述語(yǔ)言程序來(lái)改變電路,生成下載編輯軟件,通過(guò)下載電纜輸入CPLD器件即可,非常方便,特別有利于新品試制,大大縮短了開(kāi)發(fā)周期。使用CPLD和單片機(jī)結(jié)合構(gòu)成其外圍電路可以減少系統(tǒng)芯片數(shù)量,縮小系統(tǒng)體積,提高系統(tǒng)可

        靠性。

        1 控制系統(tǒng)

        該系統(tǒng)是一個(gè)無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的控制系統(tǒng),它用于控制無(wú)線模塊接收主站發(fā)送過(guò)來(lái)的信息,單片機(jī)讀取這些數(shù)據(jù)并譯碼后,根據(jù)譯碼結(jié)果控制各功能子模塊,如無(wú)線模塊控制、溫度采集控制、電源管理控制、時(shí)間統(tǒng)一信號(hào)控制等功能,共需要28個(gè)輸出控制 I/O口,13個(gè)輸入控制I/O口,擴(kuò)展I/O端口分配 8個(gè)。各外圍模塊通過(guò)SPI串行標(biāo)準(zhǔn)接口的擴(kuò)展與單片機(jī)和CPLD進(jìn)行通信,并完成數(shù)據(jù)傳輸控制功能。各外圍模塊只需接受MCU的控制命令,即可獨(dú)立完成外圍模塊各自的功能:無(wú)線模塊的收發(fā)、數(shù)據(jù)采集A/D轉(zhuǎn)換、時(shí)間統(tǒng)一記錄、電源管理等。同時(shí)預(yù)留單片機(jī)通過(guò) USART的串口輸出,另外,還需要此系統(tǒng)具有很好的擴(kuò)展性,通過(guò)擴(kuò)展外圍模塊來(lái)增加節(jié)點(diǎn)不同的功能。系統(tǒng)設(shè)計(jì)要求如圖1所示。

        根據(jù)設(shè)計(jì)要求,單片機(jī)系統(tǒng)要8 b的UART串行輸出以及SPI串行輸入輸出,同時(shí)為了完成各種控制功能,單片機(jī)必須至少擴(kuò)展7個(gè)I/O端口。如果使用傳統(tǒng)的擴(kuò)展方法,在輸出速率要求不高的情況下,并行接口通常使用8255傳統(tǒng)的微處理器接口芯片來(lái)擴(kuò)展。

        但是,這些芯片都是40腳DIP封裝,體積龐大,并且每片最多只能擴(kuò)展3個(gè)8 b I/O端口,還要考慮8255中A,B,C口是作為輸入口還是輸出口。當(dāng)需要的控制端口較多時(shí),不得不用多個(gè)這種專用芯片。這時(shí)需重復(fù)連接多片8255的8位數(shù)據(jù)線、單片機(jī)讀/寫信號(hào)線、ALE,CS(片選)和A0,A1信號(hào)線,增加了單片機(jī)硬件、軟件的設(shè)計(jì)難度,也就造成電路復(fù)雜、控制不便、可靠性降低,而且增大了電路的功耗、體積和重量。同時(shí)接口芯片提供的端口數(shù)未必與實(shí)際需要的端口數(shù)相等,不能根據(jù)實(shí)際情況分配I/O端口的數(shù)量,容易造成芯片部分資源的浪費(fèi)。而CPLD具有豐富的可編程I/O引腳,并且由于其在系統(tǒng)可編程的特點(diǎn),設(shè)計(jì)者能夠自己定義器件的內(nèi)部邏輯和管腳,擴(kuò)展電路也具有可編程設(shè)計(jì)的特點(diǎn),方便電路的多次改進(jìn),降低了設(shè)計(jì)成本。

        2 單片機(jī)與CPLD

        AVR單片機(jī),采用精簡(jiǎn)指令集CPU(RISC),具有高性能,處理速度快(1 MIPS/MHz),成本低,包括FLASH程序存儲(chǔ)器、看門狗、E2PROM、同/異步串口、SPI 、ADC、 定時(shí)器/計(jì)數(shù)器,眾多的中斷系統(tǒng),集成多種功能,具有低功耗抗干擾的休眠模式。

        復(fù)雜可編程邏輯器件(Complex Programmable Logic Device,CPLD)是一種半定制的專用集成電路(Application Specific Integrated Circuit,ASIC)。其芯片上按一定排列方式集成了大量的門和觸發(fā)器等基本邏輯元件。通過(guò)軟件編程可以實(shí)現(xiàn)這些元件的連接,從而使之完成某個(gè)邏輯電路或系統(tǒng)的功能,成為一個(gè)可在實(shí)際電子系統(tǒng)中使用的ASIC。

        目前,最大的兩家CPLD/FPGA生產(chǎn)廠商分別是ALTERA 以及Xilinx。該系統(tǒng)使用的Xilinx的XC2C256屬于Xilinx公司的Coolrunner2系列,包含256個(gè)宏單元,最大用戶I/O管腳有100個(gè)。

        3 系統(tǒng)硬件連接組成以及工作過(guò)程

        使用CPLD代替單片機(jī)的外圍接口芯片,與AVR單片機(jī)構(gòu)成的控制系統(tǒng)相連如圖2所示。系統(tǒng)的主要部分僅需要2片集成電路,AVR單片機(jī)系列ATmega162和XC2C256。單片機(jī)與CPLD之間的接口是通過(guò)單片機(jī)的地址/數(shù)據(jù)復(fù)用總線(PORTA端口)以及讀寫控制I/O口(WR,RD,ALE)與CPLD的I/O口相連來(lái)進(jìn)行數(shù)據(jù)、狀態(tài)的傳輸。

        在單片機(jī)中對(duì)擴(kuò)展的I/O端口進(jìn)行統(tǒng)一編址,通過(guò)C語(yǔ)言可以方便地訪問(wèn)I/O端口,單片機(jī)要往數(shù)據(jù)端口或控制端口輸出信息,必須先把地址送到地址總線上,將確定的控制信息送到控制總線上,再把數(shù)據(jù)信息送到數(shù)據(jù)總線上。經(jīng)過(guò)CPLD的內(nèi)部邏輯進(jìn)行地址、數(shù)據(jù)鎖存,并譯碼以獲得擴(kuò)展的端口號(hào),從而獲得對(duì)各個(gè)外部功能子模塊的控制信號(hào),端口號(hào)COM

        通過(guò)選擇不同的I/O端口可以控制讀取、寫入各外圍處理模塊的數(shù)據(jù)。要讀取某一外圍處理模塊的數(shù)據(jù),必須先讀取狀態(tài)選擇端口COM

        4 CPLD軟件設(shè)計(jì)

        采用Xilinx公司的CPLD開(kāi)發(fā)軟件Xilinx ISE完成系統(tǒng)的軟件設(shè)計(jì),Xilinx ISE支持原理圖輸入、HDL語(yǔ)言輸入、狀態(tài)圖輸入和混合輸入等輸入方法。其中HDL語(yǔ)言中的VHDL硬件描述語(yǔ)言,與具體的工藝技術(shù)和器件無(wú)關(guān),易于共享和復(fù)用,具有多層次描述系統(tǒng)硬件功能的能力。

        在設(shè)計(jì)中,CPLD需要實(shí)現(xiàn)的功能為地址譯碼端口以及控制不同端口的電路設(shè)計(jì),用VHDL語(yǔ)言對(duì)進(jìn)行編程編譯,然后采用元件例化的方法得到電路結(jié)構(gòu)如 圖3所示。

        CPLD中所設(shè)計(jì)的程序片斷:

        addr_code<=RD≀&PA;_i_latch;

        地址譯碼功能電路

        p2: process(addr_code)

        begin

        case addr_code is

        when″100000″=>adrr_cs<=″111111111110″; --cs(0),電源管理

        when ″100001″=>adrr_cs<=″111111111101″; --cs(1),時(shí)間統(tǒng)一模塊控制端口

        when ″100010″=>adrr_cs<=″111111111011″; --cs(2),無(wú)線模塊模式控制端口

        when ″100011″=>adrr_cs<=″111111110111″; --cs(3),數(shù)據(jù)采集模塊控制端口

        when ″100100″=>adrr_cs<=″111111101111″; --cs(4),片選選擇端口

        when ″100101″=>adrr_cs<=″111111011111″; --cs(5),狀態(tài)端口

        when others =>adrr_cs<=″111111111111″;

        end case;

        end process p2;--無(wú)線模塊模式控制電路

        p: process(adrr_cs(2),PA_i(2 downto 0))

        begin

        if (adrr_cs(2)′event and adrr_cs(2) = ′0′)then

        wireless_manage<=PA_i(2 downto 0);

        end if;

        end process p;--片選不同的功能模塊通過(guò)擴(kuò)展SPI與單片機(jī)通信

        p:process(SS_PIN,adrr_cs(4),PA_i(2 downto 0),csaddr)

        begin

        if (adrr_cs(4)′event and adrr_cs(4) = ′0′)then csaddr<=PA_i(2 downto 0);

        end if;

        if (SS_PIN=′0′) then

        case csaddr is

        when ″000″ => SS <=″11111110″;

        when ″001″ => SS <=″11111101″;

        when ″010″ => SS <=″11111011″;

        when others => SS<=″11111111″;

        end case;

        else

        SS<=″11111111″;

        end if;

        end process p;

        地址譯碼端口以及不同端口實(shí)現(xiàn)的功能仿真結(jié)果如圖4所示??梢钥闯?仿真結(jié)果符合設(shè)計(jì)要求。

        5 單片機(jī)軟件設(shè)計(jì)

        AVR單片機(jī)固化程序采用ICC語(yǔ)言編寫,并使用模塊化的設(shè)計(jì)方法,分為初始化程序、預(yù)定義子程序、主程序、無(wú)線收發(fā)控制程序、各功能模塊控制程序、讀功能子模塊的子程序、配置功能子模塊程序、超時(shí)程序等。模塊化設(shè)計(jì)使軟件更加靈活,便于調(diào)用和移植,并且在錯(cuò)誤發(fā)生的時(shí)候,可以很快找到錯(cuò)誤,極大地提高了系統(tǒng)的可靠性和穩(wěn)定性。

        單片機(jī)中要對(duì)擴(kuò)展的不同I/O端口分配相對(duì)應(yīng)的不同的內(nèi)存地址。例如:要對(duì)擴(kuò)展的電源管理I/O端口分配單片機(jī)所映射的內(nèi)存地址為Ox2000??梢詫懗桑?define POWER_ADDR (*( unsigned char *)0x2000)。

        單片機(jī)主要完成系統(tǒng)的控制功能,在實(shí)現(xiàn)輸出控制接口時(shí)需要與CPLD配合,提供CPLD需要的數(shù)據(jù)和地址及控制線。當(dāng)需要某一組輸出工作時(shí),在單片機(jī)中用C語(yǔ)言對(duì)宏變量對(duì)應(yīng)的地址進(jìn)行賦值,“WR”或“RD” 同時(shí)就被拉低,CPLD通過(guò)這組信號(hào)判斷選擇并且使能某一組輸出工作,并將輸出控制代碼從單片機(jī)經(jīng)過(guò)CPLD的相應(yīng)端口輸出,完成控制功能。例如對(duì)電源管理單片機(jī)中定義的I/O端口對(duì)應(yīng)的內(nèi)存地址為:#define POWER_ADDR (*(unsigned char *)0x2000),當(dāng)用C語(yǔ)言寫下POWER_ADDR=0x12時(shí),就會(huì)在CPLD的8個(gè)I/O口輸出相應(yīng)的控制信息“00010010”,從而對(duì)各功能模塊進(jìn)行供電或斷電。

        6 結(jié) 語(yǔ)

        采用CPLD作為單片機(jī)I/O端口的擴(kuò)展芯片,大大減少了單片機(jī)外圍所用芯片的種類和數(shù)量,縮小了體積,降低了功耗,提高了系統(tǒng)的可靠性和整體性。使用單片機(jī)和CPLD結(jié)合可以有效地實(shí)現(xiàn)過(guò)去需要利用單片機(jī)和大量外圍接口芯片才能完成的功能,而且還可以根據(jù)需要不斷地?cái)U(kuò)展外圍電路,只需要修改CPLD的程序就可以實(shí)現(xiàn)用戶的需求。CPLD器件與單片機(jī)結(jié)合,可以優(yōu)勢(shì)互補(bǔ),組成靈活的、硬軟件都可現(xiàn)場(chǎng)編程的控制器,縮短開(kāi)發(fā)周期,適應(yīng)市場(chǎng)需要。

        參考文獻(xiàn)

        [1]李彬,蕭德云,張正芳.基于單片機(jī)和CPLD的智能I/O模塊設(shè)計(jì).計(jì)算機(jī)工程與應(yīng)用,2006,42(36):66-69.

        [2]何立民.單片機(jī)高級(jí)教程——應(yīng)用與設(shè)計(jì).北京:北京航空航天大學(xué)出版社,2003.

        [3]趙鑫,蔣亮,齊兆群,等.VHDL與數(shù)字電路設(shè)計(jì).北京:機(jī)械工業(yè)出版社,2005.

        [4]羅苑棠.CPLD/FPGA常用模塊與綜合系統(tǒng)設(shè)計(jì)實(shí)例精講.北京:電子工業(yè)出版社,2007.

        [5]李慶,亓科,于敬芬.基于CPLD與單片機(jī)的多路高精度數(shù)據(jù)采集系統(tǒng)設(shè)計(jì).海軍工程大學(xué)學(xué)報(bào),2007,19(3): 62-65.

        [6]沈周義,許克濱.采用CPLD增強(qiáng)單片機(jī)P89C669外部設(shè)備擴(kuò)展能力.現(xiàn)代電子技術(shù),2007,30(13):63-65.

        [7]程耕國(guó),劉濤.CPLD擴(kuò)展51單片機(jī)尋址范圍.微計(jì)算機(jī)信息,2006,22(5Z):185-186,10.

        [8]蔡錦元.CPLD器件在單片機(jī)控制器中的使用.現(xiàn)代電子技術(shù),2006,29(22):1-3.

        [9]沈文,Eagle lee,詹衛(wèi)前.AVR單片機(jī)C語(yǔ)言開(kāi)發(fā)入門指導(dǎo).北京:清華大學(xué)出版社,2007.

        [10]楊美剛,李小文.SPI接口及其在數(shù)據(jù)交換中的應(yīng)用.通信技術(shù),2007(11):385-387.

        作者簡(jiǎn)介張九賓 男,1981年出生,山西運(yùn)城人,現(xiàn)就讀于中北大學(xué)信息與通信工程學(xué)院,碩士研究生。

        張丕狀 男,1965年出生,教授,博士,碩士生導(dǎo)師。中北大學(xué)信息與通信工程學(xué)院信息工程系副主任,中北大學(xué)山西省無(wú)損檢測(cè)中心青年骨干。主要從事信號(hào)信息處理、數(shù)據(jù)采集測(cè)試工作。

        杜坤坤 女,1983年出生,山東聊城人,現(xiàn)就讀于中北大學(xué)信息與通信工程學(xué)院,碩士研究生。

        久久伊人精品中文字幕有| 91综合在线| 久久精品国产精品亚洲艾| 成人水蜜桃视频在线观看| 国产乡下妇女做爰| 亚洲av无码av日韩av网站| 亚洲精品6久久久久中文字幕| 国产一区二区三区特区| 亚洲综合极品美女av| 乱人伦中文无码视频在线观看| 亚洲AⅤ无码日韩AV中文AV伦| 久久久成人av毛片免费观看| 人妻少妇中文字幕在线观看| 极品av麻豆国产在线观看| 欧美成人a在线网站| 国产精品日本一区二区三区| 久久精品国产av一级二级三级| 一本一道波多野结衣av中文| 亚洲中文av一区二区三区| 亚洲一区二区三区亚洲| 无码人妻丰满熟妇区免费| 性一交一乱一伦a片| 日韩免费高清视频网站| 人妻蜜桃日产一本久道综合在线| 亚洲成av人在线播放无码| 亚洲午夜精品久久久久久人妖| av蜜桃视频在线观看| 一二三区无线乱码中文在线 | 久久久精品毛片免费观看| 日韩放荡少妇无码视频| 成人动漫久久| 日韩精品久久伊人中文字幕 | 亚洲日韩一区二区一无码| 婷婷九月丁香| 亚洲福利视频一区二区三区| 女人18毛片a级毛片| 日韩制服国产精品一区| 欧美a级毛欧美1级a大片| 亚洲日本中文字幕天天更新| 亚洲欧美中文v日韩v在线| 黄片免费观看视频播放|