国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

基于ARM9和CPLD的輸入輸出系統設計

發布時間:2010-4-9 12:09    發布者:我芯依舊
關鍵詞: CPLD , 輸出 , 輸入 , 系統設計
嵌人式丁業控制系統的突出特點是在高低溫、高電磁輻射環境下的抗干擾性和可靠穩定性。和PLC系統相比。其明顯的優點是處理速度快、方便進行工業以太網的組建、編程方便、通用性好,而且價格僅僅是PLC的幾分之一,具有很好的發展前景。本論文主要論述了以EP9315和MAX2_EPM240為核心的嵌入式輸入輸出系統的設計。

1 系統構成

整個嵌入式輸入輸出系統分為嵌入式系統、應用模塊(即輸入輸出模塊)和轉換模塊三部分,總體結構如圖1所示。


圖1系統結構框圖

1.1 嵌入式系統

本設計選擇Cirrus Logic公司高性能的ARM9嵌入式微處理器EP9315.該微處理器具有ARM920T內核所有的優異性能。豐富的集成外設接口包括以太網MAC、串口,2.0全速HOST USB、專用SDRAM通道的LCD接口、觸摸屏接口等。

Cirrus logic公司為用戶提供了基于該處理器的全功能開發板。配合Windows CE.net嵌入式操作系統,系統開發效率高、運行穩定,為工業控制提供了可靠的系統平臺。基于定制的WinCE操作系統實現工業控制中應用模塊的專用驅動,提高嵌入式系統的通用性。

本文所述系統應用了開發板豐富的集成外設接口。通過串口進行eboot下載;通過以太網進行操作系統內核和應用程序的下載,并實現以太網通信;HOST USB接鼠標方便用戶操作;LCD屏實現顯示,觸摸屏接口實現面板觸摸操作。

1.2轉換模塊的設計

轉換模塊用于將開發板上需要用到的信號線引出,主要包括數據線、地址線和部分I/O控制信號(如nWR,nRD,NCS3,nWAIT等)。在轉換模塊中主要用到了電平轉換驅動芯片74LVXC4245,其作用包括:(1)改善信號的質量;(2)抗干擾;(3)實現電平轉換;(4)提高EP9315管腳的驅動能力。

1.3基于CPLD的輸入輸出模塊的設計

1.3.1輸入輸出模塊的設計思想

在工業應用現場,輸人/輸出模塊通常包括數字量輸入模塊、數字量輸出模塊、數字量輸入/輸出模塊、模擬量輸入模塊、模擬量輸出模塊、模擬量輸入/輸出模塊等。

考慮到不同應用系統復雜程度不同,因而對輸入輸出端口的需求也就不同。為了能根據實際需要靈活添加不同種類的輸入輸出模塊,設計時采用了如下思想:

ARM9的數據總線、地址總線和控制總線同時和多個插槽相連接,并且給每個插槽賦予一個固定的地址,稱為插槽地址,各類模塊可插入任何一個插槽。

各類輸入/輸出模塊均基于CPLD進行開發設計[6],實現對外界系統的檢測與控制。但對于不同的輸入輸出應用系統而言,其輸入信號以及輸出信號特性各異,表現出復雜性。設計時必須考慮到上述復雜性,根據實際情況,對相應輸入輸出信號進行信號調理。為了保證輸入輸出模塊和ARM9主控器連接的穩定性和快速性,采用了總線方式的擴展:將CPLD掛在ARM9的BANK3空間,連接11根地址線,16根數據線,以及相應的控制線(包括nRD、nWR、nCS3、nWAIT)。各類輸入/輸出模塊總體設計框圖可如圖2表示。


圖2輸入輸出模塊結構框圖

信號條理電路的主要功能為:實現對各類輸入信號的凋理,使之滿足CPLD輸入管腳的電氣要求;實現對CPLD輸出信號的調理,使之滿足應用系統的電氣要求。CPLD總線功能:通過各類總線建立CPLD與ARM9之19的信號聯系,實現CPLD與ARM9之間的通信。

因各類模塊可插入任何一個插槽,為了實現不同種類的模塊的自動識別,通過硬件設計語言賦予每類模塊一個ID碼。ARM通過“讀ID碼地址”讀取ID碼,即可判斷是何種模塊。隨后即可根據模塊類型實行對應的操作。

1.3.2 CPLD的選用端口數據。

Altera公司的MAXII器件采用了全新的CPLD結構,比以往的MAX器件具有更高的性價比、更低的功耗、更大的容量,使其成為復雜控制應用的理想方案。考慮到輸入輸出模塊的功能相對簡單,不需要大量的復雜運算,本系統選用容量相對較小的EPM240進行設計。

1.3.3 CPLD的軟件設計

為了通過ARM9的地址總線、數據總線和控制總線實現對輸入輸出模塊的讀寫控制,必須根據ARM9的讀寫時序圖對輸入輸出模塊的CPLD進行硬件語言編程設計。

輸入模塊關鍵代碼如下:

assign data_bus=((~(RDICS))&(address==baddr[10:5])&(haddr[4:0]==5'b00000))?16'b0000000011011111:16'bz;
assign data_bus=((~(RDICS))&(address==baddr[10:5])&(baddr[4:0]==57b00100))?dc24v_in:16'bz;

程序中第一個assign語句功能:當地址總線的低五位為5'b00000,即為“讀模塊ID碼地址”,就向數據總線輸出該模塊的ID碼。

第二個assign語句功能:當地址總線的低五位為5"b00100,即為“讀模塊數據地址”,就將模塊輸入端口數據讀入數據總線。

輸入模塊Quatuttis II仿真結果如圖3所示。從圖中可以看出,當地址總線的低五位地址為5'b00100時,模塊輸入端口數據(de24v_in)被讀入到數據總線(data_bus)。


圖3輸入模塊仿真時序圖

同理,可進行輸池模塊設計,關鍵代碼如下:

always @ (posedge pro_clk) begin
if((-WRITS))&(address==baddr [10:5])&(bad&[4:0]==5'00010))begin
mem_data[ i ]=data_bus;
i=i+1;
if((mem data [0]==mem_data[1])&(mem_data[1]==mem_data[2])&(mem_data[2]==
mem_data[3])) begin
relay_reg = mem_data[0];
end
end
end
assign relay = relay_reg;
assign led = ~relay_reg;
assign data_bus = ((~(RDICS))&(address==baddr[10:5])&(baddr[4:0]==5'b00000))?16'b0000000011011110:16'bz;

程序中alwavs語句功能:當地址總線的低五位為5'b00010,即為“寫模塊數據地址”,就將數據總線數據寫入到寄存器mem_data[]。為了增強抗干擾能力,程序中采取了連續讀取四次數據總線數據并判斷是否一致,若一致,才更新模塊輸出端口數據。

程序中第三個assign語句功能:當地址總線的低五位為5'b00000,即為“讀模塊ID碼地址”,就向數據總線輸出該模塊的ID碼。

輸出模塊Quarutu。II仿真結果如圖4所示。從圖中可以看出,當地址總線的低五位為5'b00100時,數據總線(data_bus)被寫入到模塊輸出端口(relay)。


圖4輸出模塊仿真時序圖

2 系統軟件設計

2.1驅動程序設計思想

輸入輸出模塊驅動程序基于流接口驅動程序類型進行設計。驅動程序的設計一方面應根據實現功能考慮到物理地址的合理分配,另一方面應考慮到與應用程序的接口。下面就圍繞這兩個方面具體論述驅動程序的設計思想。

2.1.1物理地址的合理分配

對輸入模塊,包含有如下兩種操作。(1)讀lD碼;(2)讀取輸入端口數據。對輸出模塊,包含有如下兩種操作。(1)讀ID碼;(2)寫數據至輸出端口。

為了保證驅動程序的通用行,即是說,對插入某個插槽的模塊,無論是是輸入模塊,還是輸出模塊,驅動程序結構是一樣的。可對每個插槽分配三個物理地址,包括讀取ID碼地址(簡稱“ID地址”)、讀取輸人模塊數據地址(簡稱“讀地址”)、寫數據至輸出模塊地址(簡稱“寫地址”)。應用程序通過“ID地址”讀取的ID碼數據判斷模塊的類型,進而通過“讀地址”對輸入模塊進行讀操作,或是通過“寫地址”對輸出模塊進行寫操作。對輸入輸出模塊的讀寫操作包含字操作、字節操作、位操作三種方式,可在驅動程序中通過“與運算和移位運算”變換實現。對每一插槽,三個物理地址可如表1分配:

表1應用模塊物理地址分配


在初始化函數(IO_Init)中,通過函數VirtualAlloc()和VirtualCopy()把EP9315針對輸入輸I葉J模塊的物理地址和操作系統的虛擬空間聯系起來,實現地址映射。

2.1.2輸入輸出模塊讀寫操作實現

操作輸入輸出模塊的應用程序流程可簡述如下[3]:發送“讀模塊ID命令碼”->接收驅動程序返回數據(即模塊ID碼)->根據模塊ID碼判斷模塊類型(輸入模塊還是輸出模塊)->根據模塊具備功能發相關命令碼進行模塊讀操作或寫操作(包括字操作、字節操作和位操作三種情況)。

驅動程序設計思路如下:在寫函數(IO_WRITE)中實現功能為:接受命令碼,并將命令碼存入某指定變量一判斷命令碼是否是寫命令碼一若是就執行寫操作(包括字操作、字節操作和位操作三種情況)。在讀函數(IO_READ)中實現功能為:判斷命令碼是否是讀命令碼一若是就執行讀操作并返回讀取的數據(包括字操作、字節操作和位操作三種情況)。

2.1.3輸入輸出模塊讀寫脈寬的調整

EP9315在WinCE操作系統下主頻達到200MHz,總線頻率為100MHz,外設時鐘為50MHz,因而,EP9315發出的讀寫及使能信號脈寬不足50ns。可以通過改變EP9315的BANK3上的讀寫時序.使其能和CPLD交互。具體可通過設置應用模塊地址空間存儲空問讀寫特性寄存器SMCBCR3中等待時間位WST1和WST2實現。

若SMCBCR3的代碼設置為:SMCBCR3=2000ffef實現功能為:設置nCS3數據寬度為32bits,讀寫脈寬為320ns。這種設置使得CPLD擁有較低的總線頻率,滿足對CPLD的讀寫時序要求。

3 小結

本文作者創新點是基于MAX2_EPM240進行了輸入輸出模塊的硬件軟件設計,在Windows CE.net操作系統下,實現了EP9315嵌入式系統對輸入輸出模塊的控制,且可根據實際需要,靈活選用各類模塊。該系統功耗低、穩定性好,適合工業控制中的運用。


作者:許弟建      來源:《微計算機信息》(嵌入式與SOC)2009年第3-2期
本文地址:http://www.qingdxww.cn/thread-10283-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • Dev Tool Bits——使用MPLAB® Discover瀏覽資源
  • Dev Tool Bits——使用條件軟件斷點宏來節省時間和空間
  • Dev Tool Bits——使用DVRT協議查看項目中的數據
  • Dev Tool Bits——使用MPLAB® Data Visualizer進行功率監視
  • 貿澤電子(Mouser)專區

相關在線工具

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 高清性色生活片久久久 | 嫩草影院地址一地址二 | 国产精品久久久久久影视 | 一级毛片aaaaaa免费看 | 成视频年人黄网站免费动漫 | 九九九九热 | 狠狠综合久久久久尤物丿 | 性生生活三级视频在线观看 | 日本一区不卡视频 | 一级毛片区| 日韩高清伦理片中字在线观看 | 久久这里只有精品久久 | 亚洲va欧美 | 国产网曝门| 2018日日夜夜操 | 亚洲动漫在线观看 | 欧美经典成人在观看线视频 | 国产免费播放一区二区 | 欧美韩国日本在线 | 一区二区三区在线观看视频 | 四虎影视在线观看永久地址 | 麻豆va| 国产精品第13页 | 亚洲精品不卡视频 | 天堂在线天堂最新版 | 成人精品视频一区二区三区 | 青青青国产手机在线播放 | 欧美黄色一级片免费看 | tom影院亚洲国产日本一区 | 三级国产在线 | 久久亚洲精品国产精品婷婷 | 日本 欧美 国产 | 日本亚洲精品成人 | 欧美在线一区二区三区不卡 | 大陆国语自产精品视频在 | 一区二区不卡免费视频 | 91亚洲国产成人久久精品网址 | 全天免费91计划网 | 一级特黄aaa大片29 | 91香蕉视频在线 | 亚洲精品色婷婷在线影院麻豆 |