针对数据采集与处理系统的应用需求,设计了嵌入Linux的ARM9处理器LPC3250与16位AD采样芯片MAX1303的硬件接口和驱动程序。首先,描述了LPC3250和MAX1303的性能、特点以及硬件接口电路设计方案。然后,在硬件平台的基础上,详细地阐述了嵌入式Linux下MAX1303驱动程序的组成模块和具体实现方法,并给出了部分源代码以及对设备驱动的测试方法。测试结果表明,系统工作正常、稳定,采样结果正确,具有实际工程应用价值。
上传时间: 2013-11-21
上传用户:nostopper
电子发烧友讯: 飞思卡尔是全球嵌入式处理解决方案、高级汽车电子、消费电子、工业控制和网络市场的领导者。从微处理器和微控制器到传感器、模拟集成电路(IC)和连接,我们的技术为创新奠定基础,构建更加环保、安全、健康和互连的世界 MC9S12XHY系列是飞思卡尔公司的经过优化的,汽车16位微控制器产品系列,具有低成本,高性能的特点。该系列是联接低端16位微控制器(如:MC9S12HY系列),和高性能32位解决方案的桥梁。MC9S12XHY系列定位于低端汽车仪器群集应用,它包括支持CAN和LIN/J2602通信,并传送典型的群集请求,如步进失速检测(SSD)和LCD驱动器的步进电机控制。 MC9S12XHY系列具有16位微控制器的所有优点和效率,同时又保持了飞思卡尔公司现有的8位和16位MCU系列的优势,即低成本、低功耗、EMC和代码尺寸效率等优点。与MC9S12HY系列相同,MC9S12XHY系列可以运行16位宽的访问,而不会出现外设和存储器的等待状态。MC9S12XHY系列为100引脚LQFP和112引脚LQFP封装,旨在最大限度地与100LQFP,MC9S12HY系列兼容。除了每个模块具有I/O端口外,还可提供更多的,具有中断功能的I/O端口,具有从停止或等待模式唤醒功能。 图1 MC9S12XHY系列方框图截图
上传时间: 2014-12-31
上传用户:66666
飞思卡尔智能车的舵机测试程序 #include <hidef.h> /* common defines and macros */#include <MC9S12XS128.h> /* derivative information */#pragma LINK_INFO DERIVATIVE "mc9s12xs128" void SetBusCLK_16M(void) { CLKSEL=0X00; PLLCTL_PLLON=1; //锁相环电路允许位 SYNR=0x00 | 0x01; //SYNR=1 REFDV=0x80 | 0x01; POSTDIV=0x00; _asm(nop); _asm(nop); while(!(CRGFLG_LOCK==1)); CLKSEL_PLLSEL =1; } void PWM_01(void) { //舵机初始化 PWMCTL_CON01=1; //0和1联合成16位PWM; PWMCAE_CAE1=0; //选择输出模式为左对齐输出模式 PWMCNT01 = 0; //计数器清零; PWMPOL_PPOL1=1; //先输出高电平,计数到DTY时,反转电平 PWMPRCLK = 0X40; //clockA 不分频,clockA=busclock=16MHz;CLK B 16分频:1Mhz PWMSCLA = 0x08; //对clock SA 16分频,pwm clock=clockA/16=1MHz; PWMCLK_PCLK1 = 1; //选择clock SA做时钟源 PWMPER01 = 20000; //周期20ms; 50Hz; PWMDTY01 = 1500; //高电平时间为1.5ms; PWME_PWME1 = 1;
上传时间: 2013-11-04
上传用户:狗日的日子
//------------------------------------------------------------------------------------//此程序为ADC转换程序,可以选择向ADC0BUSY写1或用定时器0,1,2,3作为ADC的启动信号。////------------------------------------------------------------------------------------//头文件定义//------------------------------------------------------------------------------------//#include <c8051f330.h> #include <stdio.h> //-----------------------------------------------------------------------------// 定义16位特殊功能寄存器//----------------------------------------------------------------------------- sfr16 ADC0 = 0xbd; sfr16 TMR0RL = 0xca; sfr16 TMR1RL = 0xca; sfr16 TMR2RL =0xca; sfr16 TMR3RL =0xca; sfr16 TMR0 = 0xCC; sfr16 TMR1 = 0xCC; sfr16 TMR2 = 0xcc; sfr16 TMR3 = 0xcc; //-----------------------------------------------------------------------------// 全局变量定义//-----------------------------------------------------------------------------char i;int result; //-----------------------------------------------------------------------------//定义常量//-----------------------------------------------------------------------------#define SYSCLK 49000000 #define SAMPLE_RATE 50000 //------------------------------------------------------------------------------------// 定义函数//------------------------------------------------------------------------------------void SYSCLK_Init (void);void PORT_Init (void);void Timer0_Init (int counts);void Timer1_Init (int counts);void Timer2_Init (int counts);void Timer3_Init (int counts);void ADC0_Init(void);void ADC0_ISR (void);void ADC0_CNVS_ADC0h(void);//------------------------------------------------------------------------------------// 主程序//------------------------------------------------------------------------------------ void main (void) { int ADCRESULT[50] ; int k; PCA0MD &= ~0x40; // 禁止看门狗 SYSCLK_Init (); PORT_Init (); Timer0_Init (SYSCLK/SAMPLE_RATE); //Timer1_Init (SYSCLK/SAMPLE_RATE); //选择相应的启动方式 //Timer2_Init (SYSCLK/SAMPLE_RATE); //Timer3_Init (SYSCLK/SAMPLE_RATE); ADC0_Init(); EA=1; while(1) { //ADC0_CNVS_ADC0h(); k=ADC0; ADCRESULT[i]=result; //此处设断点,观察ADCRESULT的结果 } }
上传时间: 2013-10-13
上传用户:SimonQQ
温湿度传感器 sht11 仿真程序 sbit out =P3^0; //加热口 //sbit input =P1^1;//检测口 //sbit speek =P2^0;//报警 sbit clo =P3^7;//时钟 sbit ST =P3^5;//开始 sbit EOC =P3^6;//成功信号 sbit gwei =P3^4;//个位 sbit swei =P3^3;//十位 sbit bwei =P3^2;//百位 sbit qwei =P3^1;//千位 sbit speak =P0^0;//报警音 sbit bjled =P0^1;//报警灯 sbit zcled =P0^2;//正常LED int count; uchar xianzhi;//取转换结果 uchar seth;//高时间 uchar setl;//低时间 uchar seth_mi;//高时间 uchar setl_mi;//低时间 bit hlbz;//高低标志 bit clbz; bit spbz; ///定时中断程序/// void t0 (void) interrupt 1 using 0 { TH0=(65536-200)/256;//5ms*200=1000ms=1s TL0=(65536-200)%256; clo=!clo;//产生时钟 if(count>5000) { if(hlbz) { if(seth_mi==0){seth_mi=seth;hlbz=0;out=0;} else seth_mi--; } if(!hlbz) { if(setl_mi==0){setl_mi=setl;hlbz=1;out=1;} else setl_mi--; } count=0; } else count++; } ///////////// ///////延时/////// delay(int i) { while(--i); } ///////显示处理/////// xianshi() { int abcd=0; int i; for (i=0;i<5;i++) { abcd=xianzhi; gwei=1; swei=1; bwei=1; qwei=1; P1=dispcode[abcd/1000]; qwei=0; delay(70); qwei=1; abcd=abcd%1000; P1=dispcode[abcd/100]; bwei=0; delay(70); bwei=1; abcd=abcd%100; P1=dispcode[abcd/10]; swei=0; delay(70); swei=1; abcd=abcd%10; P1=dispcode[abcd]; gwei=0; delay(70); gwei=1; } } doing() { if(xianzhi>100) {bjled=0;speak=1;zcled=1;} else {bjled=1;speak=0;zcled=0;} } void main(void) { seth=60;//h60秒 setl=90;//l90秒 seth_mi=60;//h60秒 setl_mi=90;//l90秒 TMOD=0X01;//定时0 16位工作模式 TH0=(65536-200)/256; TL0=(65536-200)%256; TR0=1; //开始计时 ET0=1; //开定时0中断 EA=1; //开全中断 while(1) { ST=0; _nop_(); ST=1; _nop_(); ST=0; // EOC=0; xianshi(); while(!EOC) { xianshi(); } xianzhi=P2; xianshi(); doing(); } }
上传时间: 2013-11-07
上传用户:我们的船长
TinyM0是广州致远电子有限公司为企业用户和高校师生设计的一款开发工具,核心微控制器采用的NXP公司最新推出的LPC1100系列Cortex-M0内核芯片。LPC1100微控制介绍:LPC1100系列微控制器采用了ARM公司最新发布的Cortex-M0内核,工作频率高达50MHz,功耗低至150μA/MHz,性能卓越、应用简单,更突出的是,它能够显著降低所有8/16位应用的代码长度,并且具有极低的市场定价,其价值和易用性比现有的8/16位微控制器更胜一筹,为追求ARM架构的8/16位用户提供了一种全新的32位解决方案。
上传时间: 2013-11-21
上传用户:几何公差
PCM-8506BS是一款基于PC/104总线的高性能同步采样多功能数据采集卡,它完全遵循PC/104总线规范。该采集卡采用了每通道专用的模数转换器(ADC)和信号处理电路的硬件架构,每个通道都有强大的处理能力和出色的精准度,可同步采样多路模拟信号,可以实现直流和动态信号测量的高度准确性。PCM-8506BS具有每通道600kSPS的同步采样速率,16位分辨率,2路模拟量输出、8路数字I/O和2个定时/计数器。其每个模拟量输入通道均有抗混叠滤波器以改善频域分析性能,有丰富的触发采集模式和触发源供选择,适用于多种高要求的数据采集场合,包括:电网监测、多相电机控制、高瞬变信号采集等。
上传时间: 2013-10-17
上传用户:bnfm
近年来电脑虚拟仪器的发展很快。在飞速发展的计算机技术支持下,“软件即仪器”的理念得到了充分的发挥。计算机加软件配合合适的AD/DA界面和传感器/控制器,就可以完成形形色色的传统仪器的所有功能,应用领域遍及现代科技的各个方面,大有星火燎原之势。而且由于其成本较低,升级容易换代快,维护简单,特别是数据的采集、分析、管理做到了智能化,大大提高了工作效率,在科研、计量、工控、自控等应用上特别受青睐,发展势头已将传统仪器远远抛在了后面,并将持续下去。但是一般的虚拟仪器对于普通电子爱好者来说仍然是太昂贵了,而且由于通用的虚拟仪器要考虑高速信号,往往采用高速低分辨率的AD/DA芯片,一般分辨率只能达到8至12位,这对于电子爱好者常用的音频领域恰恰不够精确。在现代多媒体电脑上,声卡已经成为一个必不可少的重要组成部分,它给我们提供了丰富多彩的视听娱乐和有声交流功能,使“多媒体”的名称名副其实。但是你是否知道,利用声卡高精度的AD/DA变换界面,加上合适的软件,就可以构成功能十分强大的音频(超音频)虚拟仪器呢?并且,如果使用足够好的声卡,配合比较简单的扩展设备和传声器/放大器,再选用本文介绍的软件,将是目前音频虚拟仪器的最强、最佳选择。限于篇幅和时间,本文主要介绍一些原则性的测试方法,期望起到抛砖引玉的作用,给有兴趣的爱好者引个路。具体的应用还需要大家不断学习、探索,详细的软件应用方法将在2004年《无线电》杂志以及本站连续刊登介绍。1.声卡的选择声卡担负着模拟信号进出大门的重任,其性能如何,对虚拟仪器的精度有着最直接的影响,因此选择合适的声卡是非常有必要的。从分辨率看,一般电脑多媒体声卡为16位,取样频率为44.1/48KHz,而现在的主流中高档声卡大多具备了96KHz/24bit的取样精度,好的专业声卡甚至能达到输入/输出兼备的192KHz/24bit取样精度。从音频处理的技术指标看,许多质量良好的廉价声卡已经超越了一般模拟仪器,而高档的专业声卡更是具有极其优异的指标。这也不奇怪,因为专业声卡本身就是为专业的录音、监听、音频处理而设计的,是音频传播的门槛,理应具有良好的素质。例如,顶级的专业声卡频率响应可以从几Hz平坦地延伸到数十KHz至接近100 KHz,波动在正负0.1dB以下,噪声水平在-110dB以下,动态范围大于110dB,总谐波失真和互调失真远小于万分之一,通道分离度能达到100dB……这样的声卡已经超越了绝大多数模拟设备的指标,足以应付最苛刻的应用要求,也足以胜任高精度电脑音频虚拟仪器的要求,乃至于数十KHz的超声波研究。当然了,顶级的专业声卡价格昂贵,一般相当于一套主流电脑的价格,大多数业余爱好者不能或不愿承受,但比起模拟测试仪器来说还是便宜很多,而且软件升级没有限制。不过近来电脑音频设备市场看好,许多专业声卡厂家推出了“准专业”声卡进军多媒体市场,素质良好,支持多声道,价格也便宜很多,用途广泛,很适合业余爱好者选用。如果再“抠门”一点,精选百元级优质声卡也是可以应付一般的声学测量的,因为我们知道声学测量的瓶颈一般在于传声器而不是电路。当然这时最好对声卡模拟电路进行“打摩”如更换运放和输出电容等,以得到更好的效果。介绍一些具体的声卡品牌。顶级声卡首选Lynx Two/Lynx 22,据笔者所知是目前世界上指标最优秀的声卡,价格一千美元左右。类似的其它专业声卡有RME,比Lynx还贵(主要因为支持的声道数多)。另外如果单为测试用,一些专业的测试用AD/DA界面设备也可用(例如Sound Technology公司的产品),不过可能更昂贵,而且功能少,指标也未必更强,但好处是可以找到USB接口型的,可配合笔记本电脑使用。这类声卡可以进行精确的电路测试,如作为其它声卡、碟机、功放等设备的输入输出参考标准进行测量,声学测试更是不在话下。
上传时间: 2013-10-13
上传用户:zhengjian
随着总线和接口技术的发展,在工业场合如何更加可靠、快速、便捷地进行数据传输成为该领域通信的研究重点之一。而USB技术以其高速、可靠、通用性强等一系列特点在过去的十多年时间里发展迅猛,而USB OTG技术的诞生,使得两USB设备在没有PC参与的情况下进行数据传输成为可能。本文通过搭建以16位微处理器MSP430F149为核心控制芯片、ISPl362为USB接口芯片的硬件平台,分别实现了USB部分主机和从机功能,使之能进行USB数据的存储与交换。本文完成以下工作:首先,认真研究USB协议,深入理解USB通信的基本概念和传输方式等内容。仔细分析USB Mass Storage类协议,并讨论了采用BULK-ONLY传输实现Mass Storage类协议的方法,并对SCSI指令集等进行了深入的剖析。其次,根据要求,设计出由控制、接口、数据存储、过流保护与供电切换电路等硬件模块组成的系统,在ALTIUM 2004软件上完成原理图的设计和PCB图的布局、布线,并完成硬件调试工作。再次,在已构建的硬件平台上,针对ISPl362 USB接口芯片的主/从机功能,分别设计了USB主机和从机的固件程序。利用IAR Workbench、BusHound等软件进行固件程序的调试,最终USB主机可对u盘进行检测、识别与配置;USB设备实现了USB设备的基本功能,能够被Windows XP操作系统识别,与PC机之间实现数据的批量传输。最后,用DriverWorks软件包的Driver Wizard生成驱动程序框架,并利用Windows DDK和vc++等软件进行驱动程序的编译,最终生成基于Windows操作系统的WDM型USB设备驱动程序。通过对USB通信协议的研究,本人成功地构建了以MsP430F149和ISPl362为核心的硬件试验平台,并在此平台上进行USB主机、从机通信试验。经测试表明,PC机能检测、识别、读写USB设备,其读取与写入速度分别为560KB/s和312Ⅺ玳。而主机能识别、配置接入的U盘。关键词:USB主机、USB从机、MSI'430F149、ISPl362、BuR-Only传输
上传时间: 2013-10-11
上传用户:浅言微笑
TinyM0是广州致远电子有限公司为企业用户和高校师生设计的一款开发工具,核心微控制器采用的NXP公司最新推出的LPC1100系列Cortex-M0内核芯片。LPC1100微控制介绍:LPC1100系列微控制器采用了ARM公司最新发布的Cortex-M0内核,工作频率高达50MHz,功耗低至150μA/MHz,性能卓越、应用简单,更突出的是,它能够显著降低所有8/16位应用的代码长度,并且具有极低的市场定价,其价值和易用性比现有的8/16位微控制器更胜一筹,为追求ARM架构的8/16位用户提供了一种全新的32位解决方案。
上传时间: 2013-11-18
上传用户:laomv123