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

EM9280的GPIO特色及應用

 2012-7-4              

        EM9280是英創公司即將推出的新型工控主板產品。與英創公司的其他主板產品一樣,EM9280帶有32位通用數字IO(以下簡稱GPIO)。EM9280的各位GPIO的接口電平均為3.3V TTL電平,上電后均處于輸入狀態;各位GPIO的方向均可獨立可設置,以方便使用。EM9280提供有標準的設備驅動程序API,應用程序可直接通過這些API函數來操作這些GPIO,EM9280的資料光盤上提供有GPIO操作的C/C++和C#的范例程序。對GPIO的操作的基本方法是打開GPIO的設備驅動文件“PIO1:”,然后通過調用DeviceIoContrtol來對GPIO進行設置或讀取GPIO管腳的輸入狀態。其具體的操作定義在bsp_drivers.h中:

 

        #define GPIO_IOCTL_OUT_ENABLE  // 激活指定GPIO的輸出功能 
        #define GPIO_IOCTL_OUT_DISABLE  // 禁止指定GPIO的輸出功能
        #define GPIO_IOCTL_OUT_SET  // GPIO輸出高電平
        #define GPIO_IOCTL_OUT_CLEAR  // GPIO輸出低電平
        #define GPIO_IOCTL_PIN_STATE  // 讀取指定GPIO的輸入狀態

 

        盡管EM9280的GPIO可以按統一的API函數來操作,但由于各位GPIO的實現機制的不同,其相應速度是有所區別的。EM9280的GPIO按相應速度分成低速和高速兩類。具體分類如下表所示:

 


GPIO管腳

類型

簡要說明

 GPIO0 - GPIO1 高速GPIO API函數執行時間大約10us
 GPIO2 - GPIO5 低速GPIO API函數執行時間大約100us
 GPIO6 - GPIO7 高速GPIO API函數執行時間大約10us
 GPIO8 - GPIO9 低速GPIO API函數執行時間大約100us
 GPIO10 - GPIO11 高速GPIO API函數執行時間大約10us
 GPIO12 - GPIO19 低速GPIO API函數執行時間大約100us
 GPIO20 - GPIO31 高速GPIO API函數執行時間大約10us


 

        由于存在比較大的執行時間的差異,因此在執行讀取GPIO狀態操作時,也要求指定需要具體讀取的是哪幾位GPIO。指定的方法是把需要讀取的GPIO對應位置1,不需要讀取的則為0,例如:

 

        UINT32 u32StateBits = GPIO0; // 指定需要讀取的GPIO,這里為GPIO0
        UINT32 u32StateRead;

        if (!DeviceIoControl(hGpio, // file handle to the driver
                GPIO_IOCTL_PIN_STATE, // I/O control code
                &u32StateBits, // in buffer
                sizeof(UINT32), // in buffer size
                &u32StateRead, // out buffer
                sizeof(UINT32), // out buffer size 
                NULL, // pointer to number of bytes returned
                NULL)) // ignored (=NULL)
        {
                // 出錯處理……
        }

        // u32StateRead包含讀取的GPIO狀態

 

        在大多數具體應用中,每次往往只需要讀取一位GPIO的狀態,因此只指定所需的GPIO即可,以保證API函數執行時間最快。對其他的GPIO設置操作,只需要設置需操作的GPIO位信息,沒有返回參數。

 

        為了提高管腳的利用率,EM9280的高速GPIO部分還復用了其他的接口功能,具體復用的情況如下表所示:

 


管腳

復用功能

簡要說明

 GPIO0 CTS2# 與COM2口的CTS#復用管腳
 GPIO1 RTS2# 與COM2口的RTS#復用管腳
 GPIO2  低速GPIO
 GPIO3  低速GPIO
 GPIO4  低速GPIO
 GPIO5  低速GPIO
 GPIO6 PWM1 與PWM1復用管腳
 GPIO7 PWM2 與PWM2復用管腳
 GPIO8  低速GPIO
 GPIO9  低速GPIO
 GPIO10 RXD6 與COM6口的RXD復用管腳
 GPIO11 TXD6 與COM6口的TXD復用管腳
 GPIO12  低速GPIO
 GPIO13  低速GPIO
 GPIO14  低速GPIO
 GPIO15  低速GPIO
 GPIO16  低速GPIO
 GPIO17  低速GPIO
 GPIO18  低速GPIO
 GPIO19  低速GPIO
 GPIO20 PWM3 與PWM3復用管腳
 GPIO21 PWM4 與PWM4復用管腳
 GPIO22 I2C_SDA 與I2C總線的SDA復用管腳
 GPIO23 I2C_SCL 與I2C總線的SCL復用管腳
 GPIO24 IRQ1 與IRQ1復用管腳
 GPIO25 IRQ2 與IRQ2復用管腳
 GPIO26 IRQ3 與IRQ3復用管腳
 GPIO27 IRQ4 與IRQ4復用管腳
 GPIO28 SPI_MISO 與SPI接口的數據串入MISO復用管腳
 GPIO29 SPI_MOSI 與SPI接口的數據串出MOSI復用管腳
 GPIO30 SPI_SCLK 與SPI接口的同步時鐘SCLK復用管腳
 GPIO31 SPI_CS0N 與SPI接口的片選控制CS0N復用管腳


 

        從上表可見,對最常用的異步串口(UART)的功能,與GPIO復用的不多,這樣可最大限度的保證EM9280的串口及GPIO的可用性。對COM2如果不需要硬件流控功能,GPIO0 – GPIO1都仍然可以作為標準GPIO使用,而不會影響COM2的正常使用。

主站蜘蛛池模板: 成年人小视频在线观看| 性色毛片免费视频| 快射视频网| 免费观看性欧美一级| 国产精品合集一区二区三区| 日日摸夜夜添夜夜添破第一| 日日干天天草| 欧美一级特黄刺激爽大片| 搞黄视频在线观看| 国产一区二区三区久久精品| 日本一二三精品黑人区| 久久亚洲国产精品五月天| 亚洲精品一区vv国产| 国产亚洲欧美日韩在线观看一区二区| 韩日毛片| 99久热在线精品视频播| 狠狠干成人| 亚洲国产亚洲片在线观看播放| 一级黄色片中国| 日本www高清免费视频观看| 亚洲成人18| 成人中文字幕在线高清| 欧美一级一毛片| 国产精品免费观看视频播放| 窝窝午夜色视频国产精品东北| 国产精品欧美一区二区三区| 开心激情亚洲| 欧美精品综合| 一区二区免费播放| 女同视频一区二区在线观看| 午夜成年视频| 亚洲特一级毛片| 欧美一级毛片欧美一级| 国产一区二区三区视频 | 九九亚洲精品自拍| 日韩免费中文字幕| 午夜窝窝| 中文字幕一级片| 毛片黄色片| 她也啪97在线视频| 国产三级自拍|