菜单
  

    触发方式       软件触发、前触发、后触发、中触发与延时触发
    数据传输方式   DMA方式
    时钟源         内部时钟、外部数字时钟、外部正弦波。
    内部时钟频率   可编程选择40MHz / n (n=2、4、6、8.. .256)
      图 3.3
    3.3.2 数据采集卡驱动程序设计
    在编写数据采集卡程序时,先要引用数据采集卡的头文件和库文件,其截图如下:
     
                 图3.4头文件和库文件截图
    数据采集卡的程序主要是对数据采集卡的初始化,设定数据采集模式,读取采集文件和将文件存在指定文件和释放。部分程序设计如下:
    #include <conio.h>
    #include "dask.h"

    U16 channel=3;  //4 channels
    U16 range=AD_B_1_V;
    char *file_name="9812d";
    U32 read_count=400000;
    F64 sample_rate=10000000;

    main()
    {
        I16 card, err, card_num;

        printf("This program inputs %d data from CH-0 to CH-%d of PCI-9812 in %d Hz, and\nstore data to file '%s.dat'.\nPlease press any key to start the operation.\n", read_count, channel, (int)sample_rate, file_name);
        printf("Please input a card number: ");
        scanf(" %d", &card_num);
        //getch();
        if ((card=Register_Card (PCI_9812, card_num)) <0 ) {
            printf("Register_Card error=%d\n", card);
            exit(1);
        }
        err = AI_9812_Config(card, P9812_TRGMOD_SOFT, P9812_TRGSRC_CH0, P9812_TRGSLP_POS, P9812_AD2_GT_PCI|P9812_CLKSRC_INT, 0x80, 0);
        if (err!=0) {
           printf("AI_9812_Config error=%d", err);
           exit(1);
        }
        err = AI_AsyncDblBufferMode(card, 0);
        if (err!=0) {
           printf("AI_DblBufferMode error=%d", err);
           exit(1);
        }
        err = AI_ContScanChannelsToFile(card, channel, range, file_name, read_count, sample_rate, SYNCH_OP);
        if (err!=0) {
           printf("AI_ContReadChannel error=%d", err);
           exit(1);
        }
        Release_Card(card);
        printf("\n\nThe input data is already stored in file '%s.dat'.\n", file_name);
        printf("\nPress ENTER to exit the program. "); getch();
    }
    在程序设计中,以上步骤被不断调用使用使用过后释放在初始化使用。
    3.4 网络通信模块程序设计
    3.4.1 网口通信模块
    在网口通信模块,程序的编写主要基于UDP的网络应用程序的编写。在本设计中网络通信使用线程通信,主要编辑服务器端程序和客户端程序。在终端软件发送指令到电路板上时,操控端作为客户端,执行端作为服务器端,当操作端回馈指令时,执行端又作为客户端,操控端作为服务器端。所以在终端软件上要同时包含服务器端程序和客户端程序。
    (1) 服务器端程序
    先要关闭先前工作区,建立新的工程选择Win32 Console Application类型,工程名为UdpSrv。并在应用程序创建向导的第一步选择:An empty project选项,创建一个新的工程。接着利用【文件/新建】菜单命令添加一个C++源文件:UdpSrv.cpp,然后在此文件中添加实现基于UDP的服务器端程序的代码。
  1. 上一篇:ARM嵌入式系统的数据采集传输系统研究+源程序
  2. 下一篇:有限元方法在波导计算的应用仿真
  1. Matlab离散时间网络化控制系统故障检测策略

  2. MATLAB动车组转向架轴承故障的分析与诊断仿真

  3. MATLAB重载货运列车滚动轴承故障振动信号分析

  4. 国产ELF系列CPLD开发板设计...

  5. FPGA嵌入式系统的电路板故障检测电路设计

  6. BP网络和小波变换线路故障诊断+源代码

  7. 基于arm的卫星报警检测仪硬件设计

  8. g-C3N4光催化剂的制备和光催化性能研究

  9. 现代简约美式风格在室内家装中的运用

  10. C++最短路径算法研究和程序设计

  11. 高警觉工作人群的元情绪...

  12. 浅析中国古代宗法制度

  13. 巴金《激流三部曲》高觉新的悲剧命运

  14. 中国传统元素在游戏角色...

  15. 江苏省某高中学生体质现状的调查研究

  16. NFC协议物理层的软件实现+文献综述

  17. 上市公司股权结构对经营绩效的影响研究

  

About

优尔论文网手机版...

主页:http://www.youerw.com

关闭返回