随着手机摄像头和数码相机性能的提升,增加摄像头设备到平台处理器之间的传输带宽变越来越有必要,传统的DVP接口已经不能适应现在的科技发展。在这样的大形势下MIPI联盟应运而生,它制定了一个通用的标准来规范高性能移动终端的接口,而它的子协议MIPI CSI-2则完美的解决了摄像头设备与平台处理器之间高速通信的难题,提供了一种标准化、强大、可靠、低功耗的传输方式。MPI CSI-2接口采用差分信号线,确保了高速数据在传输时不易受到外界的干扰,而其采用的ECC编码和CRC编码则从一定程度上减少了个别错误数据对于整体数据的影响,又由于自身处于MIPI大家族协议之中,它自身也很容易兼容应用MIPI家族协议的其他设备。本文详细的介绍了MIPI CSI-2协议数字部分RTL的实现,模拟部分的实现,以及后续的测试分析。在设计中RTL的设计、纠错以及模块的时序分析在Linux平台上进行。而模拟部分的实现以及整体的动态测试在FPGA平台上进行。通过这样的分工可以更全面的发挥两个平台的长处,更具体的来说,在Linux阶段的设计时充分的利用了modelsim与verdi配合的优势,从而更好的设计代码、分析代码和测试代码。而在综合时又利用Design Compile与Prime time充分的对设计做了资源分析和时序分析,保证了设计的质量。而在FPGA阶段设计时,充分的利用了FPGA灵活而且可以动态测试的优势来验证模块的正确性,此外在FPGA上还可以使用商用接收端来接收最后产生的MIPI数据,这样的验证方法更权威也更有说服力。在设计方法上,在数字部分的RTL设计中充分的应用了模块化的思想,不仅实现了协议的要求,而且灵活的适应了MIPI CSI-2协议在实际应用时的一些变通的需求。而在模拟部分的物理层设计中则大胆的做了尝试和创新,成功的在没有先例参照的情况下自主设计了FPGA下的物理层部分,并且最后成功的被商用接收端验证。总的来说在整个设计过程中遇到了阻碍和很多难题,但是经过不懈的努力最终克服了技术上的种种困难,最终也获得了阶段性的成果和自身的技术提高。
上传时间: 2022-05-30
上传用户:kingwide
摘要:随着客户要求手机摄像头像素越来越高,同时要求高的传输速度,传统的并口传输越来越受到挑战。提高并口传输的输出时钟是一个办法,但会导致系统的EMC设计变得越来困难;增加传输线手机摄像头MIPI技术介绍随着客户要求手机摄像头像素越来越高,同时要求高的传输速度,传统的并口传输越来越受到挑战。提高并口传输的输出时钟是一个办法,但会导致系统的EMC设计变得越来困难;增加传输线的位数是,但是这又不符合小型化的趋势。采用MIPI接口的模组,相较于并口具有速度快,传输数据量大,功耗低,抗干扰好的优点,越来越受到客户的青睐,并在迅速增长。例如一款同时具备MIPI和并口传输的8M的模组,8位并口传输时,需要至少11根的传输线,高达96M的输出时钟,才能达到12FPS的全像素输出;而采用MIPI接口仅需要2个通道6根传输线就可以达到在全像素下12FPS的帧率,且消耗电流会比并口传输低大概20MA。由于MIPI是采用差分信号传输的,所以在设计上需要按照差分设计的一般规则进行严格的设计,关键是需要实现差分阻抗的匹配,MIPI协议规定传输线差分阻抗值为80-125欧姆。上图是个典型的理想差分设计状态,为了保证差分阻抗,线宽和线距应该根据软件仿真进行仔细选择;为了发挥差分线的优势,差分线对内部应该紧密耦合,走线的形状需要对称,甚至过孔的位置都需要对称摆放;差分线需要等长,以免传输延迟造成误码:另外需要注意一点,为了实现紧密的耦合,差分对中间不要走地线,PIN的定义上也最好避免把接地焊盘放置在差分对之间(指的是物理上2个相邻的差分线)。
上传时间: 2022-06-02
上传用户:
摘要:随着CCD性能的不断提高,CCD技术在军、民用领域都得到了广泛的应用。介绍了TCDI501C线阵CCD的驱动电路设计,详细介绍了用VHDL完成的CCD图像传感器驱动时序设计和视频输出差分信号驱动电路的设计。关键词:线阵CCD;图像传感器:仪器仪表放大器;差分驱动1引言电荷耦合器件(CCD,Charge Couple Device)是20世纪60年代末期出现的新型半导体器件。目前随着CCD器件性能不断提高,在图像传感、尺寸测量及定位测控等领域的应用日益广泛,CCD应用的前端驱动电路成本价格昂贵,而且性能指标受到生产厂家技术和工艺水平的制约,给用户带来很大的不便。CCD驱动器有两种:一种是在脉冲作用下CCD器件输出模拟信号,经后端增益调整电路进行电压或功率放大再送给用户;另一种是在此基础上还包含将其模拟量按一定的输出格式进行数字化的部分,然后将数字信息传输给用户,通常的线阵CCD摄像机就指后者,外加机械扫描装置即可成像。所以根据不同应用领域和技术指标要求,选择不同型号的线阵CCD器件,设计方便灵活的驱动电路与之匹配是CCD应用中的关键技术之一。
上传时间: 2022-06-23
上传用户:
液晶屏接口类型有LVDS接口、MIPIDSIDSI接口(下文只讨论液晶屏LVDS接口,不讨论其它应用的LVDS接口,因此说到LVDS接口时无特殊说明都是指液晶屏LVDS接口),它们的主要信号成分都是5组差分对,其中1组时钟CLK,4组DATA(MIPIDSI接口中称之为lane),它们到底有什么区别,能直接互联么?在网上搜索“MIPIDSI接口与LVDS接口区别”找到的答案基本上是描述MIPIDSl接口是什么,LVDS接口是什么,没有直接回答该问题。深入了解这些资料后,有了一些眉目,整理如下。首先,两种接口里面的差分信号是不能直接互联的,准确来说是互联后无法使用,MIPIDSI转LVDS比较简单,有现成的芯片,例如ICN6201、ZA7783;LVDS转MIPIDSI比较复杂暂时没看到通用芯片,基本上是特制模块,而且原理也比较复杂。其次,它们的主要区别总结为两点:1、LVDS接口只用于传输视频数据,MIPIDSI不仅能够传输视频数据,还能传输控制指令;2、LVDS接口主要是将RGBTTL信号按照SPWG/JEIDA格式转换成LVDS信号进行传输,MIPILDSI接口则按照特定的握手顺序和指令规则传输屏幕控制所需的视频数据和控制数据。
上传时间: 2022-06-24
上传用户:默默
简单介绍了OBD的通用的接口定义和常见的几种用法的接口定义,①电平 (差分信号)有信号CANH=3.5V,CANL=1.5V, 没有信号CANH=2.5V,CANL=2.5V ②速率:CAN系统又分为高速和低速,高速CAN系统采用硬线是动力型,速度:500kbps,控制ECU、ABS等;低速CAN是舒适型,速度:125Kbps,主要控制仪表、防盗等。 ③协议程序CAN协议程序 (二)J1850 ①电平 H:4.25V~20V L:低于3.5V ②速率 速率:20kbps~125kbps (定:美)用于福特(Ford)、通用汽车(General Moter;GM)、克赖斯勒(Chrysler)等 ③协议程序(三)ISO 9141-2高电平:8*80% 低电平:8*20%
标签: obd接口
上传时间: 2022-07-20
上传用户:
对称密码体制的发展趋势将以分组密码为重点。分组密码算法通常由密钥扩展算法和加密(解密)算法两部分组成。密钥扩展算法将b字节用户主密钥扩展成r个子密钥。加密算法由一个密码学上的弱函数f与r个子密钥迭代r次组成。混乱和密钥扩散是分组密码算法设计的基本原则。抵御已知明文的差分和线性攻击,可变长密钥和分组是该体制的设计要点。
上传时间: 2013-12-14
上传用户:shanml
MSP430系列flash型超低功耗16位单片机MSP430系列单片机在超低功耗和功能集成等方面有明显的特点。该系列单片机自问世以来,颇受用户关注。在2000年该系列单片机又出现了几个FLASH型的成员,它们除了仍然具备适合应用在自动信号采集系统、电池供电便携式装置、超长时间连续工作的设备等领域的特点外,更具有开发方便、可以现场编程等优点。这些技术特点正是应用工程师特别感兴趣的。《MSP430系列FLASH型超低功耗16位单片机》对该系列单片机的FLASH型成员的原理、结构、内部各功能模块及开发方法与工具作详细介绍。MSP430系列FLASH型超低功耗16位单片机 目录 第1章 引 论1.1 MSP430系列单片机1.2 MSP430F11x系列1.3 MSP430F11x1系列1.4 MSP430F13x系列1.5 MSP430F14x系列第2章 结构概述2.1 引 言2.2 CPU2.3 程序存储器2.4 数据存储器2.5 运行控制2.6 外围模块2.7 振荡器与时钟发生器第3章 系统复位、中断及工作模式3.1 系统复位和初始化3.1.1 引 言3.1.2 系统复位后的设备初始化3.2 中断系统结构3.3 MSP430 中断优先级3.3.1 中断操作--复位/NMI3.3.2 中断操作--振荡器失效控制3.4 中断处理 3.4.1 SFR中的中断控制位3.4.2 中断向量地址3.4.3 外部中断3.5 工作模式3.5.1 低功耗模式0、1(LPM0和LPM1)3.5.2 低功耗模式2、3(LPM2和LPM3)3.5.3 低功耗模式4(LPM4)22 3.6 低功耗应用的要点23第4章 存储空间4.1 引 言4.2 存储器中的数据4.3 片内ROM组织4.3.1 ROM 表的处理4.3.2 计算分支跳转和子程序调用4.4 RAM 和外围模块组织4.4.1 RAM4.4.2 外围模块--地址定位4.4.3 外围模块--SFR4.5 FLASH存储器4.5.1 FLASH存储器的组织4.5.2 FALSH存储器的数据结构4.5.3 FLASH存储器的控制寄存器4.5.4 FLASH存储器的安全键值与中断4.5.5 经JTAG接口访问FLASH存储器39第5章 16位CPU5.1 CPU寄存器5.1.1 程序计数器PC5.1.2 系统堆栈指针SP5.1.3 状态寄存器SR5.1.4 常数发生寄存器CG1和CG25.2 寻址模式5.2.1 寄存器模式5.2.2 变址模式5.2.3 符号模式5.2.4 绝对模式5.2.5 间接模式5.2.6 间接增量模式5.2.7 立即模式5.2.8 指令的时钟周期与长度5.3 指令组概述5.3.1 双操作数指令5.3.2 单操作数指令5.3.3 条件跳转5.3.4 模拟指令的简短格式5.3.5 其他指令第6章 硬件乘法器6.1 硬件乘法器6.2 硬件乘法器操作6.2.1 无符号数相乘(16位×16位、16位×8位、8位×16位、8位×8位)6.2.2 有符号数相乘(16位×16位、16位×8位、8位×16位、8位×8位)6.2.3 无符号数乘加(16位×16位、16位×8位、8位×16位、8位×8位)6.2.4 有符号数乘加(16位×16位、16位×8位、8位×16位、8位×8位)6.3 硬件乘法器寄存器6.4 硬件乘法器的软件限制6.4.1 寻址模式6.4.2 中断程序6.4.3 MACS第7章 基础时钟模块7.1 基础时钟模块7.2 LFXT1与XT27.2.1 LFXT1振荡器7.2.2 XT2振荡器7.2.3 振荡器失效检测7.2.4 XT振荡器失效时的DCO7.3 DCO振荡器7.3.1 DCO振荡器的特性7.3.2 DCO调整器7.4 时钟与运行模式7.4.1 由PUC启动7.4.2 基础时钟调整7.4.3 用于低功耗的基础时钟特性7.4.4 选择晶振产生MCLK7.4.5 时钟信号的同步7.5 基础时钟模块控制寄存器7.5.1 DCO时钟频率控制7.5.2 振荡器与时钟控制寄存器7.5.3 SFR控制位第8章 输入输出端口8.1 引 言8.2 端口P1、P28.2.1 P1、P2的控制寄存器8.2.2 P1、P2的原理8.2.3 P1、P2的中断控制功能8.3 端口P3、P4、P5和P68.3.1 端口P3、P4、P5和P6的控制寄存器8.3.2 端口P3、P4、P5和P6的端口逻辑第9章 看门狗定时器WDT9.1 看门狗定时器9.2 WDT寄存器9.3 WDT中断控制功能9.4 WDT操作第10章 16位定时器Timer_A10.1 引 言10.2 Timer_A的操作10.2.1 定时器模式控制10.2.2 时钟源选择和分频10.2.3 定时器启动10.3 定时器模式10.3.1 停止模式10.3.2 增计数模式10.3.3 连续模式10.3.4 增/减计数模式10.4 捕获/比较模块10.4.1 捕获模式10.4.2 比较模式10.5 输出单元10.5.1 输出模式10.5.2 输出控制模块10.5.3 输出举例10.6 Timer_A的寄存器10.6.1 Timer_A控制寄存器TACTL10.6.2 Timer_A寄存器TAR10.6.3 捕获/比较控制寄存器CCTLx10.6.4 Timer_A中断向量寄存器10.7 Timer_A的UART应用 第11章 16位定时器Timer_B11.1 引 言11.2 Timer_B的操作11.2.1 定时器长度11.2.2 定时器模式控制11.2.3 时钟源选择和分频11.2.4 定时器启动11.3 定时器模式11.3.1 停止模式11.3.2 增计数模式11.3.3 连续模式11.3.4 增/减计数模式11.4 捕获/比较模块11.4.1 捕获模式11.4.2 比较模式11.5 输出单元11.5.1 输出模式11.5.2 输出控制模块11.5.3 输出举例11.6 Timer_B的寄存器11.6.1 Timer_B控制寄存器TBCTL11.6.2 Timer_B寄存器TBR11.6.3 捕获/比较控制寄存器CCTLx11.6.4 Timer_B中断向量寄存器第12章 USART通信模块的UART功能12.1 异步模式12.1.1 异步帧格式12.1.2 异步通信的波特率发生器12.1.3 异步通信格式12.1.4 线路空闲多机模式12.1.5 地址位多机通信格式12.2 中断和中断允许12.2.1 USART接收允许12.2.2 USART发送允许12.2.3 USART接收中断操作12.2.4 USART发送中断操作12.3 控制和状态寄存器12.3.1 USART控制寄存器UCTL12.3.2 发送控制寄存器UTCTL12.3.3 接收控制寄存器URCTL12.3.4 波特率选择和调整控制寄存器12.3.5 USART接收数据缓存URXBUF12.3.6 USART发送数据缓存UTXBUF12.4 UART模式,低功耗模式应用特性12.4.1 由UART帧启动接收操作12.4.2 时钟频率的充分利用与UART的波特率12.4.3 多处理机模式对节约MSP430资源的支持12.5 波特率计算 第13章 USART通信模块的SPI功能13.1 USART同步操作13.1.1 SPI模式中的主模式13.1.2 SPI模式中的从模式13.2 中断与控制功能 13.2.1 USART接收/发送允许位及接收操作13.2.2 USART接收/发送允许位及发送操作13.2.3 USART接收中断操作13.2.4 USART发送中断操作13.3 控制与状态寄存器13.3.1 USART控制寄存器13.3.2 发送控制寄存器UTCTL13.3.3 接收控制寄存器URCTL13.3.4 波特率选择和调制控制寄存器13.3.5 USART接收数据缓存URXBUF13.3.6 USART发送数据缓存UTXBUF第14章 比较器Comparator_A14.1 概 述14.2 比较器A原理14.2.1 输入模拟开关14.2.2 输入多路切换14.2.3 比较器14.2.4 输出滤波器14.2.5 参考电平发生器14.2.6 比较器A中断电路14.3 比较器A控制寄存器14.3.1 控制寄存器CACTL114.3.2 控制寄存器CACTL214.3.3 端口禁止寄存器CAPD14.4 比较器A应用14.4.1 模拟信号在数字端口的输入14.4.2 比较器A测量电阻元件14.4.3 两个独立电阻元件的测量系统14.4.4 比较器A检测电流或电压14.4.5 比较器A测量电流或电压14.4.6 测量比较器A的偏压14.4.7 比较器A的偏压补偿14.4.8 增加比较器A的回差第15章 模数转换器ADC1215.1 概 述15.2 ADC12的工作原理及操作15.2.1 ADC内核15.2.2 参考电平15.3 模拟输入与多路切换15.3.1 模拟多路切换15.3.2 输入信号15.3.3 热敏二极管的使用15.4 转换存储15.5 转换模式15.5.1 单通道单次转换模式15.5.2 序列通道单次转换模式15.5.3 单通道重复转换模式15.5.4 序列通道重复转换模式15.5.5 转换模式之间的切换15.5.6 低功耗15.6 转换时钟与转换速度15.7 采 样15.7.1 采样操作15.7.2 采样信号输入选择15.7.3 采样模式15.7.4 MSC位的使用15.7.5 采样时序15.8 ADC12控制寄存器15.8.1 控制寄存器ADC12CTL0和ADC12CTL115.8.2 转换存储寄存器ADC12MEMx15.8.3 控制寄存器ADC12MCTLx15.8.4 中断标志寄存器ADC12IFG.x和中断允许寄存器ADC12IEN.x15.8.5 中断向量寄存器ADC12IV15.9 ADC12接地与降噪第16章 FLASH型芯片的开发16.1 开发系统概述16.1.1 开发技术16.1.2 MSP430系列的开发16.1.3 MSP430F系列的开发16.2 FLASH型的FET开发方法16.2.1 MSP430芯片的JTAG接口16.2.2 FLASH型仿真工具16.3 FLASH型的BOOT ROM16.3.1 标准复位过程和进入BSL过程16.3.2 BSL的UART协议16.3.3 数据格式16.3.4 退出BSL16.3.5 保护口令16.3.6 BSL的内部设置和资源附录A 寻址空间附录B 指令说明B.1 指令汇总B.2 指令格式B.3 不增加ROM开销的模拟指令B.4 指令说明(字母顺序)B.5 用几条指令模拟的宏指令附录C MSP430系列单片机参数表附录D MSP430系列单片机封装形式附录E MSP430系列器件命名
上传时间: 2014-04-28
上传用户:sssnaxie
溫度華氏轉變攝氏 #include <stdio.h> #include <stdlib.h> enum x {A,B,C,D,E} int main(void) { int a=73,b=85,c=66 { if (a>=90) printf("a=A等級!!\n") else if (a>=80) printf("73分=B等級!!\n") else if (a>=70) printf("73分=C等級!!\n") else if (a>=60) printf("73分=D等級!!\n") else if (a<60) printf("73分=E等級!!\n") } { if (b>=90) printf("b=A等級!!\n") else if (b>=80) printf("85分=B等級!!\n") else if (b>=70) printf("85分=C等級!!\n") else if (b>=60) printf("85分=D等級!!\n") else if (b<60) printf("85分=E等級!!\n") } { if (c>=90) printf("c=A等級!!\n") else if (c>=80) printf("66分=B等級!!\n") else if (c>=70) printf("66分=C等級!!\n") else if (c>=60) printf("66分=D等級!!\n") else if (c<60) printf("66分=E等級!!\n") } system("pause") return 0 }
上传时间: 2014-11-10
上传用户:wpwpwlxwlx
溫度華氏轉變攝氏 #include <stdio.h> #include <stdlib.h> enum x {A,B,C,D,E} int main(void) { int a=73,b=85,c=66 { if (a>=90) printf("a=A等級!!\n") else if (a>=80) printf("73分=B等級!!\n") else if (a>=70) printf("73分=C等級!!\n") else if (a>=60) printf("73分=D等級!!\n") else if (a<60) printf("73分=E等級!!\n") } { if (b>=90) printf("b=A等級!!\n") else if (b>=80) printf("85分=B等級!!\n") else if (b>=70) printf("85分=C等級!!\n") else if (b>=60) printf("85分=D等級!!\n") else if (b<60) printf("85分=E等級!!\n") } { if (c>=90) printf("c=A等級!!\n") else if (c>=80) printf("66分=B等級!!\n") else if (c>=70) printf("66分=C等級!!\n") else if (c>=60) printf("66分=D等級!!\n") else if (c<60) printf("66分=E等級!!\n") } system("pause") return 0 }
上传时间: 2013-12-12
上传用户:亚亚娟娟123
增量式光电编码器输出四分频脉冲计数,分别为A,B两路信号
上传时间: 2014-01-13
上传用户:tzl1975