Lisp能否和C c语言编写的小游戏一样进行位操作,能否编写操作系统?

求助:数据采集卡的一个特性该怎样理解?150KS/s是单通道的还是16路一共的采集量呢?研华的USB-4711A的特性上写采样频率150KS/s.一共16路采样通道.请问是单通道最高能达到150KS/s还是16路一共在一秒内能采集150K个点?我若用其中的8路,是8路每秒一共能采集150K个点吗?现在要16路都用上,若是16路一共的采集点数就不满足要求了.谢谢大家帮忙.
首先这款采集卡 不是同步采集卡 他的采样频率150KS/S是指单通道最高能达到150KS/S 但是在正常使用中是达不到这么高的采样频率的
为您推荐:
其他类似问题
扫描下载二维码多通道数据采集仪 频率数据采集仪 频率采集器
型 号分辨率(bit)最高频率(KHz)模入数DIO线计数器FIFO程控放大价 格(元)UA3031225163-16316KB选装请询价UA3011210016-323-16316KB1-16倍请询价UA301H1220016-323-16332KB1-16倍请询价UA3051233316-323-16332KB选装请询价UA3041625163-16316KB选装请询价UA3021610016-323-16332KB1-16倍请询价UA3061625016-323-16332KB1-16倍请询价UA3071650016-323-16332KB选装请询价注意: 我单位所给出的最高采样频率, 均为您可实际应用的最高采样频率.以上是小盒形式式报价.USB总线数据采集器-同步,准同步型型 号分辨率(bit)最高频率(KHz)模入数DIO线计数器FIFO程控放大价 格(元)UA301S1212516,前4路同步选装选装16KB1-16倍请询价UA302S1610016,前4路同步选装选装32KB1-16倍请询价ua306S1625016,前4路同步选装选装32KB1-16倍请询价另可提供以上型号8-32路同步输入采集仪,机箱型。请询价UA301A1215016-32,准同步选装选装16KB1-16倍请询价UA305A1233316-32,准同步选装选装32KB选装请询价UA302A1610016-32,准同步选装选装32KB1-16倍请询价UA306A1625016-32,准同步选装选装32KB1-16倍请询价UA307A1650016-32,准同步选装选装32KB选装请询价USB总线数据采集器-ICP传感器输入型型 号分辨率(bit)最高频率(KHz)模入数DIO线计数器FIFO程控放大价 格(元)UA301i121504路ICP输入,小盒型选装选装16KB1-16倍请询价UA305i123334路ICP输入,小盒型选装选装32KB选装请询价UA302i161004路ICP输入,小盒型选装选装32KB1-16倍请询价UA306i162504路ICP输入,小盒型选装选装32KB1-16倍请询价UA307i165004路ICP输入,小盒型选装选装32KB选装请询价另可提供以上型号8-32路ICP输入采集仪,机箱型。请询价同步型ICP输入12-16100-5004-32路选装选装32KB选装请询价以上USB 采集器可选装的扩展功能:扩充功能&价 格(元)2 路 12 bit 普通 D/A&请询价4 路 12 bit 普通 D/A&请询价快速D/A,任意波形发生器模块(UA355M)&请询价任意频率信号发生器模块(UA353M)&请询价3 路 16 bit 定时计数器&请询价72 路 可编程DIO&请询价光隔离8DI/8DO,光隔离 6计数器&请询价多通道同步采样功能(125KHz以下)&请询价多通道同步采样功能(125KHz以上)&请询价铝制小机箱 Q9头输入&请询价铝制小机箱 Q9头输入,带稳压电源&请询价UADZ-1端子板&请询价外形结构:USB采集器出厂默认结构为小盒式,也可选择其它形式如下:&小盒形式(出厂默认)195*100*40端子结构形式180*90*30紧凑型80*80*30机箱型310*240*67UA306A型采集器是我公司新开发生产的具有准同步采样功能的的USB总线采集产品. 该产品的基本功能与UA306相同, 其新特点是具有多通道准同步采样功能及完善的外同步采样功能, 为对多通道同步采集有要求的用户提供了一种低价位的选择.  准同步采样: 在多通道采集时, 许多应用场合希望各通道的数据是同时刻的, 通道间无相位差或相位差尽量小, 这就是所谓的同时刻采集或同步采集. 一般的A/D板多采用一个A/D转换器+多路开关的方式进行多路采集且采样间隔是固定的, 这就造成了通道间的相位差且采样频率越低相位差越大. 解决这一问题的方法有三种: 1. 采用多A/D并行采集 2. 加装多路同时刻采样保持器 3. 由硬件设计实现与采样频率无关的通道间最快速度扫描采集. 以上1,2种方法可实现理想的无相差采集, 但都有电路复杂, 成本高, 功耗大的缺点. 第三种方法即准同步采集, 该方法不能实现完全的无相差但可以实现相差尽量小, 仍可满足一般使用要求. 这种方法的原理是采用变采样间隔的方法, 通道间采用A/D允许的最快速度采集, 而每通道样点的采样间隔(频率)可任意设定. 如采用5uS的A/D转换器4通道采集, 通道间固定相差为5uS, 1到4通道最大相差15uS, 每通道的采样频率可以是任意的(如用1KHz采样频率, 样点间间隔为1000uS). 这种方式的优点是: 电路简单, 成本低, 采样通道数任意, 功耗小. 其中功耗小是非常重要的, 它意味着USB采集器不需外加电源, 而以上1,2种方法一般都需要外加电源.  UA306A型采集器即是用以上第三种方法设计的准同步采集器, 它的准同步采样功能完全由硬件实现, 编程使用非常简单, 它与UA306向下兼容, 也可以普通方式进行多通道采集. 此外, 它还有更完善的外同步采样功能, 每个外脉冲各通道快速采样一次.如果您对同步采集有更高的要求, 我们仍提供采用以上1,2种方法的无相差同步采集器.
(本文来源:山东利达信仪器仪表设备有限公司&&>>
,转载请注明出处)
仪表网官方微信
马上加入会员行列掌控网络营销核心优势
全年征稿 / 资讯合作
联系邮箱:
版权与免责声明
凡本网注明"来源:中国仪表网"的所有作品,版权均属于中国仪表网,转载请必须注明中国仪表网,/。违反者本网将追究相关法律责任。
企业发布的公司新闻、技术文章、资料下载等内容,如涉及侵权、违规遭投诉的,一律由发布企业自行承担责任,本网有权删除内容并追溯责任。
本网转载并注明自其它来源的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品来源,并自负版权等法律责任。
如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。
日-19日,“首届智慧海绵城市论坛暨武汉
日,由全国工商联环境商会与肇庆市政府联
甘肃食安快检技能总决赛落幕
Wonderful Christmas Eve !
中图仪器张鹏副总经理被聘为全国几何量长度计量技术委
永龙阀门在年间以替其他厂家代加工“切断阀
发布《安徽省统计局一行前来天康(集团)股份有限公司
发布《辽宁省外经贸厅副厅长唐审非一行到东方测控调研
发布《LABOM 2015年参展信息》
发布《艾思荔大型恒温恒湿试验室成功签约英国客户》
发布《2014年全国颗粒表征与分检及筛网标委会年会在珠
发布《北京吉安诺参加2014全国测绘地理信息技术装备展
11月25日上午,江苏省计量科学研究院与南非国家计量院技术合11月29日,大唐集团公司与通用电气(GE)公司全面战略合作伙&日前,历时11天的第32届亚太计量规划组织(APMP)全体日由机械工业仪器仪表综合技术经济研究所标准检
2017中国仪表网新年祝福~实拍无纸记录仪详细操作指导国家海洋局将用无人机加强对钓鱼岛等重点海域监测工作,增强云南电网风电光伏发电双双创新高!基于ISP1581的USB数据采集系统的实现
来源:电子技术应用2010年第6期
作者:王之海1, 李 想2
摘&& 要: 具有PCI总线等接口形式的采集卡虽然传输速率高,但安装麻烦,易受PC机插槽数量、地址、中断资源的限制。为了解决以上问题,设计了基于的高速USB接口的多通道系统,介绍了系统硬件组成以及软件程序的开发过程。经验证,系统最高传输速率可达60 Mb/s。
关键词: 数据采集; ISP1581; USB&
&& 数据采集广泛应用于信号检测、信号处理、仪器仪表等领域。目前,有各种数据采集卡或采集系统可供选择,但由于数据源以及用户需求的多样性,有时并不能满足要求。特别是在某些应用中,需要同时高速采集多个通道的数据,而且为了分析比较各通道信号间的相互关系,常常要求所有通道的采集必须同步。目前常用的数据采集卡是具有ISA总线、PCI总线等接口形式的A/D采集卡,虽然数据传输率很高,但是还存在整个系统笨重,缺乏灵活性,不能实现即插即用,不适合小型、便携设备应用等缺点。通用串行总线(USB)是为了解决日益增加的PC机外设与有限的主板插槽和端口之间的矛盾而制定的一种串行通信标准。USB的出现很好地解决了以上问题。USB不仅具有快速的传输性能,而且USB协议本身具有其纠错能力,它的即插即用模式和易扩展性能都具有很强的发展前途和应用价值[1]。根据项目实际需求,本文设计了一种基于ISP1581的高速USB多通道数据采集系统,系统最高采样率每通道可达500 K字,并且具有增益控制调节、外触发同步采集等功能,目前该系统已成功地应用于某水下定位系统[2]。
1 系统硬件组成
&& &如图1所示,系统由信号调理电路模块、A/D采集模块、USB数据传输模块三个部分组成。
1.1 信号调理电路模块
 由于从传感器进来的信号一般都比较小(大约在微伏量级),A/D无法直接对这些信号进行采集,需要通过信号调理电路模块对其进行放大,以满足A/D采集的量程范围。另外,由于信号容易受到外界噪声以及电噪声的干扰,通过信号调理电路所具有的滤波功能,可以滤除信号频带外的噪声。
1.2 A/D采集模块
 A/D采集模块由1片FPGA和2片A/D组成,完成4路信号的模/数转换。模数转换器选择的是AD7655芯片。AD7655是一款高速、低功耗4通道16位模数转换器,采用5 V单电源供电,模拟输入信号范围为0 V~5 V;高输入阻抗,可对4路模拟输入同时高速采样并进行数字化转换,采样速率最高可达1 MS/s,支持并行或串行接口。由于本采集系统要求对各路信号的相位严格一致,而AD7655只能同时对4个通道中的2路信号同时进行采样,因此,1片A/D仅连接了2路模拟信号。另外,为了保证所有通道信号的相位一致性,2片A/D需要使用同一个转换信号来控制转换的进行,故在电路连接时,把每个A/D芯片的转换信号(CNVST)管脚连接在一起,然后连接到FPGA上的转换信号输出管脚上,由FPGA输出的转换信号驱动。FPGA与A/D之间的数据读取采用总线的方式,将每一片A/D的读控制信号都独立连接到FPGA上,由FPGA控制各路采样数据的读取。采集电路连接如图2所示。
1.3 USB数据传输模块
 USB数据传输模块是本系统的核心。要开发USB功能设备,首先需要对设计产品的功能进行全面了解,包括数据传输速率、传输类型、所需要的硬件资源等。在充分了解设计的产品后,要选择合适的USB接口芯片,如果选择得好,可以大大节省开发时间和费用。
 USB接口芯片是一种集成了USB协议的微处理器,能自动对各种USB事件作出响应,以处理USB总线上的数据传输。所有的主机和设备上都至少含有1块实现其功能的USB接口芯片。按照不同的标准,USB接口芯片有如下几种分类方式,以功能分类则可以分为:主控制器芯片、集线器芯片、功能设备芯片;以使用方式进行分类则可以分为:带USB接口的专用MCU、带USB接口的通用MCU、纯粹的USB接口芯片。
 本设计中选用了Philips公司的USB2.0接口芯片ISP1581,该芯片属于纯粹的USB接口芯片。这类USB接口芯片价格较低,接口方便,灵活性高,针对不同的硬件环境可以配合多种MCU使用,如单片机、DSP、FPGA[3-4]。ISP1581支持2种工作模式:通用处理器模式和断开总线模式。本设计中采用DSP来控制ISP1581,连接方式选用通用处理器模式,原理图如图3所示。
2 USB接口软件开发
 软件分为USB固件程序开发和USB设备驱动程序开发两大部分。
2.1 USB固件程序开发
 所有基于微处理器及其外围电路的功能设备的正常工作都离不开固件的参与,固件的作用就是辅助硬件,即控制硬件来完成预期的功能,如没有固件的参与和控制,硬件设备只是芯片简单的堆砌,无法实现预期的功能,如同一台没有安装操作系统的计算机,无法正常工作。因此,用户必须编写固件程序来辅助硬件完成USB通信任务[5]。具体如下:
&&& (1)初始化。主要是设置一些特殊寄存器的初值,以实现所需的设备属性或功能,例如开中断、使能端点、配置端口等。
 (2)辅助硬件完成设备的重新枚举(ReNumeration)过程。包括模拟设备的断开与重新连接,对收到的设置包进行分析判断,从而对主设备请求做出适当的响应,完成对设备的配置任务。
 (3)对中断的处理。
 (4)数据的接收和发送。
 (5)外围电路的控制。
 固件程序设计成中断驱动模式,采用模块化设计,其总体结构如图4所示。
 各模块的主要功能如下:
 (1)主程序:完成DSP及USB接口芯片的初始化、数据发送/接收标志位的判断及中断请求等待。
 (2)中断服务程序:中断服务程序是整个固件程序设计的重点。首先通过读取ISP1581中断寄存器的值判断所发生中断的类型,然后根据具体的中断类型进入相应的处理子程序或设置相应的标志位。中断服务程序中需要处理的有总线复位中断、高速状态变化中断、SETUP中断及端点的IN/OUT中断。在所有的中断处理程序中,EP0SETUP中断处理是最重要的,它是USB设备与PC机间建立通信链路的基础。
 (3)请求处理程序:USB标准请求处理程序负责处理枚举阶段主机发给设备的标准请求,以及正常工作时主机发送的厂商请求。USB2.0协议中规定了11种USB标准请求,对这11种标准请求作出正确的响应是设备成功枚举的重中之重。当固件接收到第1个SETUP中断后,就进入USB枚举过程,其过程是由主机发出一系列USB标准设备请求并要求及时得到设备响应,如果不需要进行操作,也必须指示一个空响应,使主机能为该设备准备其所请求的资源,建立好两者之间的信息沟通机制。
 (4)数据接收/发送程序:当用户通过主机端应用程序向设备索要数据或向设备发送数据时,DSP调用数据发送/接收子程序完成数据的发送/接收。数据的发送和接收过程如下:
 发送数据:选择端点索引&写发送缓冲区长度寄存器&写发送数据到数据端口寄存器&等待发送完毕标志。
&& 接收数据:选择端点索引&读接收缓冲区长度寄存器&从数据端口寄存器读取接收到的数据。
 (5)硬件接口访问程序:硬件接口程序负责完成DSP对ISP1581的读写操作,它是整个固件程序中最底层也是使用最频繁的部分,在这里主要定义了2种类型的函数:ISP1581常用寄存器访问函数和数据端口寄存器访问函数。
 常用寄存器访问函数:
 void outport(unsigned int *reg_addr, unsigned short value);
 unsigned short inport(unsigned int *reg_addr);
 数据端口寄存器访问函数:
 void write_ep(unsigned short *addr, unsigned short size);
 unsigned short read_ep(unsigned short *addr);
 write_ep为写端点发送缓冲区函数,其中参数*addr为指向待发送缓冲区的起始地址指针,参数size为要发送数据的字节数;read_ep为读端点接收缓冲区函数,参数含义与write_ep函数相同,返回值为接收数据的字节数。
2.2 驱动程序开发
 Windows环境下驱动程序有3种模型:VxD模型、KMD模型、WDM模型。WDM模型是微软力推的全新驱动程序模型,现在主流的操作系统都是采用基于WDM模型的驱动程序,因此本采集系统也采用WDM驱动程序模型来开发USB设备的驱动程序[6]。
 对于USB设备,其WDM驱动程序分为USB底层(总线)驱动程序和USB功能(设备)驱动程序。USB底层驱动程序由操作系统提供,负责与实际的硬件打交道,实现底层通信。USB功能驱动程序由设备开发者编写,不对实际的硬件进行操作,而是通过向USB底层驱动程序发送包含请求块URB(USB Request Block)的IRP,以实现对USB设备信息的发送和接收。
 目前,WDM驱动程序开发工具有3种:Microsoft公司的DDK、Numega公司的DriverStudio和Jungo公司的WinDriver。其中,DDK的开发难度较大,开发者需要对整个体系结构和WDM规范有很好的理解和把握,还要熟悉上千个DDK函数的功能和使用场合,且测试流程繁琐;DriverStudio的开发难度低一些,它将DDK函数按照逻辑功能进行组织,把很多常用功能封装成类,建立了一个基于C++语言的面向对象的编程环境,开发者面对的不再是上千个复杂凌乱的DDK函数,而是逻辑清晰的类库;WinDriver的开发几乎没有难度,开发者所编写的只是定制和调用它提供的通用驱动,开发周期较短,特别适合于驱动程序初学者使用。
 利用WinDriver开发设备驱动程序,有2种方法:(1)用Wizard自动生成驱动程序的框架代码,根据实际要求修改代码,加入定制的功能,再在用户态执行和调试代码,并将性能要求苛刻的部分插入到核心态,从而完成整个驱动程序的编写。在使用这种方法时,WinDriver已经完成了驱动程序编写的大部分工作,减少了工作量,使编写驱动成为相对较简单。但此方法生成的设备驱动程序,其通用性和可移植性较差;(2)完全用WinDriver提供的API函数来写驱动程序。这样要比修改由Wizard生成的框架代码灵活得多,并且编写的程序更简短。但这要求开发者熟悉驱动程序的框架,能熟练运用WinDriver API函数。
 为了缩短开发周期,在实际应用中选用了第1种方法生成驱动程序。具体步骤如下:
 (1) 启动Driver Wizard,检测连接的USB设备,生成inf文件,这个inf文件和WinDriver包含的windrvr6.sys一起,就是新开发USB设备的驱动程序。
 (2) 点击Next按钮,进入资源列表窗口,窗口中显示了管道(Pipe)的一些基本信息。此窗口还可以用于对外设进行读写,测试硬件资源的正确性,窗口中的Log部分即为测试结果。
 (3) 点击Next按钮,进入代码生成窗口,在窗口中选择生成C语言代码。之后Driver Wizard将自动生成针对ISP1581的样本程序和工程文件(包括代码文件、说明文件以及适用于VC++编译器的项目文件)。
 (4)重新安装这个USB设备的驱动程序,利用DriverWizard生成的文件,就可开发应用程序了。
 经过反复测试发现,在现有硬件上批量传输的速度在60 Mb/s左右,可以满足当前系统采样频率为500 kHz时的数据采集要求,即500K&4路&16=32 Mb/s。但与USB2.0规范的极限速度相比,现有的批量传输速度还不及其13%,分析其原因:
 (1) USB2.0规范定义的最大速度为480 Mb/s,但它是包含令牌包在内的传输,因此,若扣除通信协议中的令牌,实际传输速度要远低于480 Mb/s。
 (2) 从访问寄存器的时序参数可以看出,读/写周期最小为80 ns,即DSP对ISP1581读写的最高频率是12.5 MHz,由于每次读写操作的数据为2 B,所以DSP与接口芯片之间数据传输的最高速率是25 MB/s,最后的实际值应该小于此值。
 (3) 利用WinDriver开发驱动,事实上它只是定制和调用WinDriver提供的通用驱动而已,所以并非有针对性地对特定硬件编程,程序执行效率上也不免大打折扣。
 (4) 计算机与USB设备的通信中还包含对计算机硬盘的写操作,使用测试软件对所用机器硬盘进行写测试,测得平均速度在22~25 MB/s之间,因此硬盘的写速度也是影响USB数据传输速度的原因之一。
&&& 因此若想在现有硬件平台上获得更高的速度可以在以下几个方面进行:采用端点的双缓冲模式、采用ISP1581的DMA模式、采用效率更高的驱动开发方式及优化固件程序以提高硬件的工作效率等。
[1]& 廖济林.USB2.0应用系统开发实例精讲[M].北京:电子工业出版社,2006.
[2]& 张建鹏,解国明,李刚.基于ISP1581型接口电路的USB2.0接口设计[J].国外电子元器件, 2005(9).
[3]& 黎美. 基于USB2.0的接口芯片ISP1581的应用与设计[J].集成电路应用,2005(7).
[4]& Compaq, Intel, Lucent, Microsoft, NEC, Philips.Universal serial bus specification, Revision2.0[S].2000.
[5]& 周立功.PDIUSBD12 USB固件编程与驱动开发[M].北京:北京航空航天大学出版社,2003.
[6]& 武安河,邰铭,于洪涛. Windows 2000/XP WDM 设备驱动程序开发[M].北京:电子工业出版社,2002.
AET会员年终大福利!
继续阅读>>
热门关键词2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。

我要回帖

更多关于 易语言代码编写例子 的文章

 

随机推荐