激情综合丁香-激情综合六月-激情综合婷婷亚洲图片-激情综合图区-激情综合网五月

工控主板EM9360的GPIO的各種使用方法

 2009-9-14              

        英創公司的ARM9工控主板產品 EM9360是一款預裝WinCE操作系統,以多種通訊接口、支持各種擴展為其技術特色。EM9360的板載的3路以太網接口、6路串口以及1路CAN接口,均帶有標準的WinCE驅動程序,支持應用程序通過WinCE相應的API函數來操作各路網絡接口。此外EM9360還與英創公司其他ARM9主板一樣,帶有精簡ISA擴展總線以及12位通用GPIO,精簡ISA總線的基本使用方法可參考英創網站的相關信息,而本文則主要介紹EM9360主板中12位GPIO的各種使用方法。

        EM9360的12位通用數字IO的各種使用方法列表如下:


數字IO

高位地址

時間同步

外部中斷

RS485

矩陣鍵盤

GPIO0

 

PPS_IN#

 

 

 

GPIO1

 

PPS_OUT#

 

 

 

GPIO2

 

 

IRQ2

 

 

GPIO3

 

 

IRQ3

 

 

GPIO4

ISA_SA5

 

 

 

4X4矩陣鍵盤

GPIO5

ISA_SA6

 

 

 

GPIO6

ISA_SA7

 

 

COM2_RST#

GPIO7

ISA_SA8

 

 

COM3_RST#

GPIO8

ISA_SA9

 

 

COM4_RST#

GPIO9

ISA_SA10

 

 

COM5_RST#

GPIO10

ISA_SA11

 

 

COM6_RST#

GPIO11

ISA_SA12

 

 

COM7_RST#


 

通用GPIO
        EM9360上電后的各位IO均處于數字輸入狀態,通過相應的API函數(定義在em9360_isa_dio.h文件中)這12位GPIO可獨立設置為輸入或輸出,輸出電平也可獨立設置。

精簡ISA總線的高位地址線
        基本的精簡ISA總線只包含低5為地址總線SA0 – SA4,對大多數IO類型的擴展,5位地址線已足夠使用。為了支持存儲器類型的擴展,EM9360提供對高位地址總線的支持,其中的SA5 – SA12與GPIO4 – GPIO11復用管腳。為了激活高位地址總線,應用程序需在程序初始化階段,通用調用API函數

        int ISA_ReadUchar( int nSeg, UINT nOffset, UCHAR* pRdValue );

        進行一次“啞讀”即可。具體需要激活的高位地址還可通過偏移量nOffset的輸入值來選擇,但至少需要激活SA5和SA6這2位地址總線。舉例說明如下:
        1、激活SA5和SA6,而其他的還是保持為GPIO,則nOffset = 0x007F;
        2、激活SA5–SA7,而其他的還是保持為GPIO,則nOffset = 0x00FF;
        3、激活SA5–SA12,最大訪問8KB空間,則nOffset = 0x1FFF;

        在使用高位地址擴展時,需要注意以下事宜:
        ·精簡ISA總線有2個片選輸出,其中CS1#只支持最大1KB的訪問空間,而CS0#則可支持最大8KB的訪問空間,所以通常用CS0#作為存儲器單元的片選控制。
        ·若客戶應用還需要訪問更大空間,EM9360還可引出SA13 – SA15信號,使CS0#的訪問空間達到64KB。
精簡ISA總線擴展的存儲器單元一般只能用作數據存儲,不能作為程序運行空間。
        ·激活的地址線應當是由小至大,連續地址空間。

 

時間同步功能
        EM9360支持時間同步功能,基本的使用方法是應用程序打開“PPS1:”設備驅動程序,此時GPIO0將自動轉為同步脈沖輸入PPS_IN#(低電平有效)。PPS驅動程序被PPS_IN#脈沖觸發后,將立即發送時間同步事件,供上層應用線程做必要處理。根據用戶設置,PPS驅動程序還可在GPIO1上輸出同步脈沖PPS_OUT#(同樣是低電平有效),以及自動對當前時間進行整秒調整。

 

更多的外部中斷
        基本的精簡ISA總線只提供1條外部硬件中斷輸入IRQ1,上升沿有效。若客戶應用需要擴展更多的通訊接口,如增加第二路CAN接口、增加8路串口等等,這時僅僅一條外部中斷就不夠了,需要更多的外部中斷支持,GPIO2和GPIO3則可用于外部中斷輸入。事實上EM9360的驅動已可支持類似這樣的擴展,感興趣的客戶可與英創公司聯系了解進一步的使用方法。

 

作為RS485接口的RST#
      GPIO6–GPIO11還可分別作為COM2 – COM7的RTS#控制信號,低電平有效。對RS485接口,若需要使用RTS方向控制方案,則在設置串口參數時,需要特別地把RTS控制段設置為RTS_CONTROL_TOGGLE,相關的代碼如下所示:

      DCB dcb;            // 定義參數控制塊

      GetCommState( m_hSer, &dcb );     // 讀取當前參數塊
      dcb.fRtsControl = RTS_CONTROL_TOGGLE;  // 設置RTS方向控制
      SetCommState(m_hSer, &dcb);     // 重設串口參數

        上述代碼中m_hSer為打開串口文件“COMx:”的文件句柄。

        在使用RS485通訊時,一般把RTS#有效(低電平)作為發送狀態,RTS#無效(高電平)為接收狀態。從發送狀態切換回接收狀態,作為方向控制信號的RTS#,可能會有最長1ms的延時,因此為了防止系統出現收發狀態沖突的情況,RS485的波特率最好不超過9600bps。

 

矩陣鍵盤
        EM9360支持由GPIO驅動的4×4矩陣鍵盤,具體配置如下:


虛擬鍵碼

GPIO5 - KIN0

GPIO7 - KIN1

GPIO8 - KIN2

GPIO10 - KIN3

GPIO4 - KOUT0

VK_ESCAPE

VK_0

VK_DECIMAL

VK_BACK

GPIO6 - KOUT1

VK_CAPITAL

VK_1

VK_2

VK_3

GPIO8 - KOUT2

VK_SPACE

VK_4

VK_5

VK_6

GPIO10 - KOUT3

VK_RETURN

VK_7

VK_8

VK_9


 

        EM9360已內置了基于GPIO的矩陣鍵盤驅動程序,加載方法是在應用程序中調用:

        HANDLE  hDevice = NULL;
        hDevice = ActivateDevice( TEXT('Drivers\\gpio_keypad'), 0);

 

        注意在應用程序退出時,應卸載該驅動程序,以避免矩陣鍵盤驅動程序被反復加載。

 

        我們會根據客戶的應用需求,對EM9360的GPIO賦予更多的功能,但無論GPIO有多少功能,在面向具體應用時,每位GPIO只能選擇一種應用。對此,客戶在進行GPIO功能配置時需特別小心,避免在一個管腳選擇多種功能,造成運行結果異常,長期處于這種異常狀態還可能導致主板硬件損壞。

        已購買EM9360的客戶,若需要使用本文所介紹的新增功能,如RS485 RTS#方向控制等,一般需要更新內核和SDK。可以把主板寄回由我們免費更新內核,并從英創公司網站上下載新的SDK,就可使用本文所介紹的全部功能了。

主站蜘蛛池模板: 国产人做人爱免费视频| 欧美日韩中文一区| 精品在线一区| 国产一区二区三区视频在线观看| 伊人情涩网| 九九99视频在线观看视频观看| 亚洲视频在线一区二区| 欧美成人看片一区二区三区| 国产精品色哟哟| 黄视频网址| japanese国产高清麻豆| 久久国产三级| 日本道色综合久久影院| 亚洲午夜久久久久国产| 一级毛片免费视频网站| 日韩一区二区不卡中文字幕| 在线观看视频日韩| 免费大片黄在线观看| 国产一区 在线播放| 国产做爰免费视频观看| 黄色片aaa| 精品国产亚一区二区三区| 国产福利精品在线| 精品国产91久久久久| 免费国产精成人品| 啪啪综合网| 日韩欧美二区在线观看| 亚洲高清一区二区三区久久| 在线国产视频一区| 做受又硬又粗又免费视频| www.黄色网| 一区二区三区免费精品视频| 久久久久久a亚洲欧洲aⅴ| 日本一区二区免费在线| 日韩丝袜在线| 日韩精品免费在线观看| 亚洲~首页~原始| 亚洲成人77777| 亚洲成a人v天堂网| 亚洲国产日韩无在线播放| 亚洲精品va|