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

EM9380工控主板實時控制應用說明

 2013-9-13              

        EM9380是英創公司針對高速實時應用設計的一款雙CPU工控主板,主CPU采用了FreeScale 454MHz ARM9 iMX283, 從CPU采用的是Atmel公司的64MHz Cortex-M3。EM9380預裝了WinCE6.0操作系統,經過我們精心的設計,EM9380可實現最小為25uS 的實時控制應用。

 

        EM9380與英創公司的另一款8串口工控主板EM9280的引出管腳高度兼容,具體可參考《EM9380與EM9280兼容設計》一文。 EM9380與EM9280的GPIO對應管腳完全一致,但在其各自復用的功能和軟件操作方法上有著較大的區別。下表是EM9380與EM9280 32位GPIO以及各自復用功能的對比。

 


PIN#信號名稱EM9280復用功能EM9380復用功能
CN1_27GPIO0

  COM2口CTS#

  復用定時器功能

CN1_28GPIO1

  COM2口RTS#

  復用定時器功能

CN1_29GPIO2 

  復用定時器功能

CN1_30GPIO3 

  復用定時器功能 

CN1_31GPIO4 

  PWM3

CN1_32GPIO5 

  PWM4

CN1_33GPIO6

  PWM1

  PWM5

CN1_34GPIO7

  PWM2

  PWM6

CN1_35GPIO8 

  AD0通道輸入 

CN1_36GPIO9 

  AD1通道輸入

CN2_15GPIO10

  COM6口RXD

  AD2通道輸入

CN2_16GPIO11

  COM6口TXD

  AD3通道輸入

CN2_17GPIO12 

  AD4通道輸入 

CN2_18GPIO13 

  AD5通道輸入

CN2_19GPIO14 

  AD6通道輸入

CN2_20GPIO15 

  AD7通道輸入

CN2_21GPIO16 

  COM2口CTS# 

CN2_22GPIO17 

  COM2口RTS# 

CN2_23GPIO18 

  COM6口RXD 

CN2_24GPIO19 

  COM6口TXD 

CN2_25GPIO20

  PWM3 

  PWM1

CN2_26GPIO21

  PWM4

  PWM2

CN2_27GPIO22

  I2C_SDA

  I2C_SDA 

CN2_28GPIO23

  I2C_SCL

  I2C_SCL

CN2_29GPIO24

  IRQ1

  IRQ1

CN2_30GPIO25

  IRQ2

  IRQ2 

CN2_31GPIO26

  IRQ3

  IRQ3

CN2_32GPIO27

  IRQ4

  IRQ4 

CN2_33GPIO28

  SPI_MISO

  SPI_MISO

CN2_34GPIO29

  SPI_MOSI

  SPI_MOSI

CN2_35GPIO30

  SPI_SCLK  

  SPI_SCLK  

CN2_36GPIO31

  SPI_CS0N

  SPI_CS0N


 

        從上表可以看出EM9380與EM9280的GPIO20~GPIO31功能完全一樣。而EM9380的GPIO0~GPIO15是從Cortex-M3從CPU引出、支持實時控制應用的引腳,可實現高速AD、高精度PWM、數字PID、脈沖計數等高速實時控制,這正是EM9380的特色所在。

 

        在應用程序的設計上,EM9380的GPIO20~GPIO31使用與EM9280一樣的函數操作,EM9380的GPIO0~GPIO15則需要一組專門的API函數用來操作,這組API定義在mcu_api.h文件中,下面是對API函數的一個簡要說明。

 

        // 打開MCU操作單元,獲取MCU的句柄。
        HANDLE OpenMCU( int Index );

 

        // 關閉MCU操作單元
        BOOL CloseMCU( HANDLE hMCU );

 

        // 獲取MCU的版本信息。
        BOOL MCU_GetVInfo( HANDLE hMCU, PMCU_VER_INFO pMCU_VInfo ); 

        // MCU GPIO操作:設置相關的GPIO位為輸出IO。 
        BOOL MCU_GPIO_OutEnable( HANDLE hMCU, UINT32 dwEnBits ); 

        // MCU GPIO操作:設置相關的GPIO位為輸入IO。 
        BOOL MCU_GPIO_OutDisable(HANDLE hMCU, UINT32 dwDisBits ); 

        // MCU GPIO操作:設置輸出GPIO位輸出高位。 
        BOOL MCU_GPIO_OutSet( HANDLE hMCU, UINT32 dwSetBits ); 

        // MCU GPIO操作:設置輸出GPIO位輸出低位。 
        BOOL MCU_GPIO_OutClear( HANDLE hMCU, UINT32 dwClearBits ); 

        // MCU GPIO操作:獲取相關輸入GPIO位狀態值。 
        BOOL MCU_GPIO_PinState( HANDLE hMCU, UINT32* pPinState ); 

        // MCU GPIO操作:啟動實時監控輸入GPIO位狀態值。 
        BOOL MCU_GPIO_PinMonitor( HANDLE hMCU, UINT32* pPinState, UINT32 dwPeriod ); 

        // MCU PWM操作:啟動/停止PWM通道, 啟動參數包括頻率、占空比和初始極性 
        // 輸入參數dwCh: PWM通道號, = 3, 4, 5, 6 
        // dwFreq: PWM輸出頻率,單位Hz 
        // dwDuty: PWM輸出占空比,單位.1%, 輸入范圍= 0-1000 
        // dwPol: PWM初始極性,= 0: 低電平, = 1: 高電平
 
        BOOL MCU_PWM_CHANNEL( HANDLE hMCU, DWORD dwCh, DWORD dwFreq, DWORD dwDuty, DWORD dwPol ); 

        // MCU ADC操作:啟動ADC通道常規數據采集 
        // 輸入參數dwChMode: AD通道模式= 0: 單端, = 1: 差分 
        // pBuf: AD數據Buffer 
        // dwBufSize: AD數據Buffer的長度,決定要采集的通道數, WORD長度對齊 
        BOOL MCU_ADC_Generic( HANDLE hMCU, DWORD dwChMode, WORD *pBuf, DWORD dwBufSize ); 

        // MCU 等待實時數據。 
        // return TRUE: 接收到實時數據 
        // FALSE: no
 
        BOOL WaitForData( HANDLE hMCU, DWORD dwTimeout ); 

        // 功能: 讀取實時數據命令數據 
        // 返回值:MCU實時數據類型編號 
        // <0: 無數據 
        // =1: TYPE_MCU_GPIO_INFO 
        // =2: TYPE_MCU_ADC_INFO 
        DWORD MCU_Read( HANDLE hMCU, LPVOID pBuffer, DWORD Count );

 

        “EM9380開發光盤\Sortware\C例程”目錄下的Mcu_TestSDK工程,詳細展示了上面API函數的使用方法,在使用這些API函數前,需要在自己的工程中鏈接對應的庫文件“mcusdk.lib”。 
        #pragma comment( lib, 'mcusdk.lib' )


 

        mcusdk.lib實際上是為了方便用戶使用MCU功能(MCU即EM9380的從CPU)做的二次封裝,在mcusdk.lib庫內部依然調用的是標準流式驅動接口函數,比如通過CreateFile打開驅動句柄,通過DeviceIoControl與MCU驅動交互。利用這些標準驅動接口函數,用戶可以使用EM9380從CPU的更多高級功能,我們已經做了一些EM9380在高速實時控制方面應用的案例,這些例子演示了通過標準驅動接口函數操作MCU的方法。


 

        相關閱讀:

        《EM9380多通道AD數據采集》 
        《EM9380多路任意脈沖發生器及應用》

主站蜘蛛池模板: 尤物视频在线观看免费视频| 爱爱动态视频免费| 欧美日韩亚洲国产一区二区三区| 在线人成精品免费视频| 香蕉大片| 国产在线观看不卡| 日本亚洲精品无码专区| 久久中文字幕网| 午夜成年免费观看视频| 好吊色青青青国产欧美日韩| 国产一级小视频| 成人免费视频社区| 无耻三级在线观看| 1024在线观看视频| 一级毛片在线看| 亚洲黄色在线观看| 免费毛片a线观看| 国产精品jvid在线观看| 国产片网站| 久久久久草| 亚洲欧美综合国产精品一区| 日韩亚洲影院| 亚洲限制级| 成 人 黄 色 全 集| 青青青青操| 国产最新网站| sese亚洲| 六月婷婷视频| 亚洲视频精品| 久久国产香蕉| 日本vs欧美一区二区三区| 午夜精品久久久久久久99| 在线观看中文字幕2021| 伊人色婷婷| 国产一级aaa全黄毛片| 国产免费高清国产在线视频| 国产精品99久久99久久久看片| 美国特级黄 色大片| www.久久久| 国产va精品网站精品网站精品| 国产九九精品|