可测试性设计(Design-For-Testability,DFT)已经成为芯片设计中不可或缺的重要组成部分。它通过在芯片的逻辑设计中加入测试逻辑提高芯片的可测试性。在高性能通用 CPU 的设计中,可测试性设计技术得到了广泛的应用。本文结合几款流行的 CPU,综述了可应用于通用 CPU 等高性能芯片设计中的各种可测试性方法,包括扫描设计(Scan Design),内建自测试(Built-In Self-Test,BIST),测试点插入(Test Point Insertion),与 IEEE 1149.1标准兼容的边界扫描设计(Boundary Scan Design,BSD)等技术。
上传时间: 2021-10-15
上传用户:uuuu009
TLC2543是TI公司的12位串行模数转换器,使用开关电容逐次逼近技术完成A/D转换过程。由于是串行输入结构,能够节省51系列单片机I/O资源;且价格适中,分辨率较高,因此在仪器仪表中有较为广泛的应用。 TLC2543的特点 (1)12位分辩率A/D转换器; (2)在工作温度范围内10μs转换时间; (3)11个模拟输入通道; (4)3路内置自测试方式; (5)采样率为66kbps; (6)线性误差±1LSBmax; (7)有转换结束输出EOC; (8)具有单、双极性输出; (9)可编程的MSB或LSB前导; (10)可编程输出数据长度。 TLC2543的引脚排列及说明 TLC2543有两种封装形式:DB、DW或N封装以及FN封装,这两种封装的引脚排列如图1,引脚说明见表1 TLC2543电路图和程序欣赏 #include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit clock=P1^0; sbit d_in=P1^1; sbit d_out=P1^2; sbit _cs=P1^3; uchar a1,b1,c1,d1; float sum,sum1; double sum_final1; double sum_final; uchar duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar wei[]={0xf7,0xfb,0xfd,0xfe}; void delay(unsigned char b) //50us { unsigned char a; for(;b>0;b--) for(a=22;a>0;a--); } void display(uchar a,uchar b,uchar c,uchar d) { P0=duan[a]|0x80; P2=wei[0]; delay(5); P2=0xff; P0=duan[b]; P2=wei[1]; delay(5); P2=0xff; P0=duan[c]; P2=wei[2]; delay(5); P2=0xff; P0=duan[d]; P2=wei[3]; delay(5); P2=0xff; } uint read(uchar port) { uchar i,al=0,ah=0; unsigned long ad; clock=0; _cs=0; port<<=4; for(i=0;i<4;i++) { d_in=port&0x80; clock=1; clock=0; port<<=1; } d_in=0; for(i=0;i<8;i++) { clock=1; clock=0; } _cs=1; delay(5); _cs=0; for(i=0;i<4;i++) { clock=1; ah<<=1; if(d_out)ah|=0x01; clock=0; } for(i=0;i<8;i++) { clock=1; al<<=1; if(d_out) al|=0x01; clock=0; } _cs=1; ad=(uint)ah; ad<<=8; ad|=al; return(ad); } void main() { uchar j; sum=0;sum1=0; sum_final=0; sum_final1=0; while(1) { for(j=0;j<128;j++) { sum1+=read(1); display(a1,b1,c1,d1); } sum=sum1/128; sum1=0; sum_final1=(sum/4095)*5; sum_final=sum_final1*1000; a1=(int)sum_final/1000; b1=(int)sum_final%1000/100; c1=(int)sum_final%1000%100/10; d1=(int)sum_final%10; display(a1,b1,c1,d1); } }
上传时间: 2013-11-19
上传用户:shen1230
VGA 是视频图形阵列(Video Graphics Array)的简称,是IBM 于1987 年提出的一个使用模拟信号的图形显示标准。最初的VGA 标准最大只能支持640*480 分辨率的显示器,而为了适应大屏幕的应用,视频电气标准化组织VESA(Video Electronics StandardsAssociation 的简称)将VGA 标准扩展为SVGA 标准,SVGA 标准能够支持更大的分辨率。人们通常所说的VGA 实际上指的就是VESA 制定的SVGA 标准。(1). VGA 接口VGA 采用15 针的接口,用于显示的接口信号主要有5 个:1 个行同步信号、1 个场同步信号以及3 个颜色信号,接口还包含自测试以及地址码信号,一般由不同的制造商定义,主要用来进行测试及支持其它功能。
上传时间: 2013-10-27
上传用户:541657925
用途:测量地磁方向,测量物体静止时候的方向,测量传感器周围磁力线的方向。注意,测量地磁时候容易受到周围磁场影响,主芯片HMC5883 三轴磁阻传感器特点(抄自网上): 1,数字量输出:I2C 数字量输出接口,设计使用非常方便。 2,尺寸小: 3x3x0.9mm LCC 封装,适合大规模量产使用。 3,精度高:1-2 度,内置12 位A/D,OFFSET, SET/RESET 电路,不会出现磁饱和现象,不会有累加误差。 4,支持自动校准程序,简化使用步骤,终端产品使用非常方便。 5,内置自测试电路,方便量产测试,无需增加额外昂贵的测试设备。 6,功耗低:供电电压1.8V, 功耗睡眠模式-2.5uA 测量模式-0.6mA 连接方法: 只要连接VCC,GND,SDA,SDL 四条线。 Arduino GND -> HMC5883L GND Arduino 3.3V -> HMC5883L VCC Arduino A4 (SDA) -> HMC5883L SDA Arduino A5 (SCL) -> HMC5883L SCL (注意,接线是A4,A5,不是D4,D5) 源程序: #include <Wire.h> #include <HMC5883L.h> HMC5883Lcompass; voidsetup() { Serial.begin(9600); Wire.begin(); compass = HMC5883L(); compass.SetScale(1.3); compass.SetMeasurementMode(Measurement_Continuous); } voidloop() { MagnetometerRaw raw = compass.ReadRawAxis(); MagnetometerScaled scaled = compass.ReadScaledAxis(); float xHeading = atan2(scaled.YAxis, scaled.XAxis); float yHeading = atan2(scaled.ZAxis, scaled.XAxis); float zHeading = atan2(scaled.ZAxis, scaled.YAxis); if(xHeading < 0) xHeading += 2*PI; if(xHeading > 2*PI) xHeading -= 2*PI; if(yHeading < 0) yHeading += 2*PI; if(yHeading > 2*PI) yHeading -= 2*PI; if(zHeading < 0) zHeading += 2*PI; if(zHeading > 2*PI) zHeading -= 2*PI; float xDegrees = xHeading * 180/M_PI; float yDegrees = yHeading * 180/M_PI; float zDegrees = zHeading * 180/M_PI; Serial.print(xDegrees); Serial.print(","); Serial.print(yDegrees); Serial.print(","); Serial.print(zDegrees); Serial.println(";"); delay(100); }
上传时间: 2013-12-15
上传用户:stella2015
VGA 是视频图形阵列(Video Graphics Array)的简称,是IBM 于1987 年提出的一个使用模拟信号的图形显示标准。最初的VGA 标准最大只能支持640*480 分辨率的显示器,而为了适应大屏幕的应用,视频电气标准化组织VESA(Video Electronics StandardsAssociation 的简称)将VGA 标准扩展为SVGA 标准,SVGA 标准能够支持更大的分辨率。人们通常所说的VGA 实际上指的就是VESA 制定的SVGA 标准。(1). VGA 接口VGA 采用15 针的接口,用于显示的接口信号主要有5 个:1 个行同步信号、1 个场同步信号以及3 个颜色信号,接口还包含自测试以及地址码信号,一般由不同的制造商定义,主要用来进行测试及支持其它功能。
上传时间: 2013-11-11
上传用户:咔乐坞
用途:测量地磁方向,测量物体静止时候的方向,测量传感器周围磁力线的方向。注意,测量地磁时候容易受到周围磁场影响,主芯片HMC5883 三轴磁阻传感器特点(抄自网上): 1,数字量输出:I2C 数字量输出接口,设计使用非常方便。 2,尺寸小: 3x3x0.9mm LCC 封装,适合大规模量产使用。 3,精度高:1-2 度,内置12 位A/D,OFFSET, SET/RESET 电路,不会出现磁饱和现象,不会有累加误差。 4,支持自动校准程序,简化使用步骤,终端产品使用非常方便。 5,内置自测试电路,方便量产测试,无需增加额外昂贵的测试设备。 6,功耗低:供电电压1.8V, 功耗睡眠模式-2.5uA 测量模式-0.6mA 连接方法: 只要连接VCC,GND,SDA,SDL 四条线。 Arduino GND -> HMC5883L GND Arduino 3.3V -> HMC5883L VCC Arduino A4 (SDA) -> HMC5883L SDA Arduino A5 (SCL) -> HMC5883L SCL (注意,接线是A4,A5,不是D4,D5) 源程序: #include <Wire.h> #include <HMC5883L.h> HMC5883Lcompass; voidsetup() { Serial.begin(9600); Wire.begin(); compass = HMC5883L(); compass.SetScale(1.3); compass.SetMeasurementMode(Measurement_Continuous); } voidloop() { MagnetometerRaw raw = compass.ReadRawAxis(); MagnetometerScaled scaled = compass.ReadScaledAxis(); float xHeading = atan2(scaled.YAxis, scaled.XAxis); float yHeading = atan2(scaled.ZAxis, scaled.XAxis); float zHeading = atan2(scaled.ZAxis, scaled.YAxis); if(xHeading < 0) xHeading += 2*PI; if(xHeading > 2*PI) xHeading -= 2*PI; if(yHeading < 0) yHeading += 2*PI; if(yHeading > 2*PI) yHeading -= 2*PI; if(zHeading < 0) zHeading += 2*PI; if(zHeading > 2*PI) zHeading -= 2*PI; float xDegrees = xHeading * 180/M_PI; float yDegrees = yHeading * 180/M_PI; float zDegrees = zHeading * 180/M_PI; Serial.print(xDegrees); Serial.print(","); Serial.print(yDegrees); Serial.print(","); Serial.print(zDegrees); Serial.println(";"); delay(100); }
上传时间: 2014-03-20
上传用户:tianyi223
现代先进微处理器有非常高的集成度和复杂度,又有寄存器堆、Cache等嵌入式部件,而且芯片管脚数相对较少,必须要有一定的自测试设计和其它的可测试性设计来简化测试代码,提高故障覆盖率。本文简要讨论NRS4000微处理器芯片的以边界扫描测试为主体,以自测试为补充的可测试性设计框架。着重介绍芯片的边界扫描设计和芯片中译码控制器PLA和微程序ROM以及采用内嵌RAM结构的指令Cache和寄存器堆的内建自测试设计。仿真结果表明,这些可测试性设计大大缩短了测试代码的长度。
上传时间: 2015-07-25
上传用户:moshushi0009
中国移动公布MMS已经有一段时间了。但是MMS的通讯开发工具并不是很多,主要是Nokia提供的工具。另外华为也提供了MMSC API,但是对于很多没有机会直接接入MMSC的开发人员来说,也无法了解更多。 北京易科思达科技有限公司推出的第一款MMS模拟器基本上解决了这个问题。它可以兼容华为的MMSC API和Nokia EAIF MMSC模拟器。它支持MMS的封包和解包。在模拟的过程当中可以通过华为的API发一个数据给模拟器,它会解开所接收到的数据包,并把相关内容打印在屏幕上,同时再重新加上封装,利用MO模式反调用API的接收接口。这样利用该模拟器就可以完成一个自测试循环。 对该模拟器感兴趣的同志,可以去下载中心里面下载多功能模拟器以及MMS的相关配置文件。在下载中心中还有一个有关MMS的解码器,以及若干用于研究的MMS例子。 MMS的封装过程十分复杂,可以说其难度是远超过短信息协议。其复杂的封装过程主要是为了兼容原有HTTP协议的同时,并减少对通信通道的数据容量压力
上传时间: 2013-12-14
上传用户:wmwai1314
DSP2407 CAN模块的基本程序,可以用于自测试
上传时间: 2017-02-13
上传用户:Thuan
程序所在目录:ex7_CAN 由于调试CAN总线通讯需要外部的CAN设备。所以在没有外部CAN设备的情况下,本样例程序中采用了CAN的自测试模式通信,即使用CANBOX4发送CANBOX0接收。在定时器中断服务程序中执行发送;中断方式接收CAN信息。 打开CC2000,进行如下操作: 1. Project->Open ,打开该目录中的工程文件。 2. Project->Rebuild ALL,编译链接 3. File->Load Program 4. 光标移到int1中断服务程序CANIFR=0xFFFF所处的行。 5. Debug->Toggle breakpoint (快捷键F9) 6. Debug->Animate (快捷键F12) 偏左上脚GEL Files上点右键,Load GEL,选择LF2407.gel,然后菜单栏Gel->LF2407->CAN regs,即可看到CAN寄存器的变量被显示岛Watch Window中.可以看到CANBOX0里面接收到数据0x2211,0x4433等数据,这些数据是由CANBOX4发送往总线上的. 如果用户和别的CAN设备通信,参照本例程的注释更改相关设置即可。
上传时间: 2014-11-15
上传用户:zhuimenghuadie