登录
首页 » Others » C#使用FFMPEG解码H264视频源码

C#使用FFMPEG解码H264视频源码

于 2020-12-07 发布
0 506
下载积分: 1 下载次数: 1

代码说明:

C#版本的视频解码源码,使用FFMPEG解码H264视频文件,解码后的数据保存为YUV格式,可以使用yuvplayer播放.Dll目录是运行时使用的动态库.Video目录是测试用的H264视频文件.源码展示了如何用CLR封装C代码,然后在C#项目中使用.涉及CLR的数据格式转换,事件和线程。项目工程使用VS 2012创建。

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • stm32f103中文资料.
    stm32f103中文资料.stm32f103中文资料.stm32f103中文资料.stm32f103中文资料.stm32f103中文资料.stm32f103中文资料.stm32f103中文资料.stm32f103中文资料.stm32f103中文资料.stm32f103中文资料.stm32f103中文资料.stm32f103中文资料.stm32f103中文资料.stm32f103中文资料.stm32f103中文资料.stm32f103中文资料.stm32f103中文资料.stm32f103中文资料.stm32f103中文资料.stm32f103中文资料.stm32f103中文资料.stm32fSTM32F103XC,STM32F103XD,STM32F103xE数据手册51.2典型数值51.3典型曲线514负载电容51.5引肽输入电压aaa:aaa:aaa:::::a:::::::::29516供电方案1着国国重面国面面面面■5.1.7电流消耗测量3052绝对最大额定值.…53工作条件…3253.1通用工作条件…32532上电和掉电时的工作条件32533内嵌复位和电源控制模块特性32534内置的参照电压535供电电流特性5.3.6外部时钟源特性…405.37内部肘钟源特性11画44538PLL特性5.39存储器特性4553.10FSMC特性∴5311EMC特性605312绝对最大值(电气敏感性)…6153.131O端口特性625314NRsT引脚特性645315TM定时器特性5316通信接口655317CAN(控制器局域网络)接凵53.1812位ADC特性53.19DAC电气参数7553.20温度传感器特性…766封装特性…776.1封装机械数据…重面重重面面国国面面:::62热特性.8362.1参考文档846.2.2选择产品的温度范围847订货代码868版本历史87参照209年3月STM32F103XCD数据手册英文第5版(本译文仅供参考,如有翻译错误,请以英文原稿为准)3/87STM32F103xC,STM32F103XD,STM32F103xE数据手册1介绍本文给出了STM32F103XC、STM32F103xD和STM32F103XE大容量增强型产品的订购信息和器件的机械特性。有关完整的STM32F103XX系列的详细信息,请参考第2.2节。大容量STM32F103X数据手册,必须结合STM32F10XX参考手册一起阅读有关内部闪存存储器的编程、擦除和保护等信息,请参考《STM32F10XXxX闪存编程参考手册》。参考手册和闪存编程参考手册均可在ST网站下载:www.st.com/mcu有关 Cortex-M3核心的相关信息,请参考《 Cortex-M3技术参考手册》,可以在ARM公司的网站下4i:httpinfocenter.arm.com/help/index.isp?topic=/com.arm.doc.ddi0337eisCortexIntellgent Processors by ARM ARME参照209年3月STM32F103XCDE数据手册英文第5版(本译文仅供参考,如有翻译错误,请以英文原稿为准)4/87STM32F103XC,STM32F103XD,STM32F103xE数据手册2规格说明STM32F103XC、STM32F103xD和STM32F103XE增强型系列使用高性能的 ARMR CortexTM-M332位的RSC内核,工作频率为72MHz,内置高速存储器(高达512K字节的闪存和64K字节的SRAM丰富的增强O端冂和联接到两条APB总线的外设。所有型号的器件都包含3个12位的ADC、4个通用16位定时器和2个PWM定时器,还包含标准和先进的通信接口:多达2个PC接口、3个SP接口、2个S接口、1个SD接口、5个 USART接口、一个USB接口和一个CAN接口。STM32F103X人容量增强型系列工作于-40°至+105°C的温度范围,供电电压2.0V至36V,一系的省电模式保证低功耗应用的要求STM32F103X大容量增强型系列产品提供包括从64脚至144脚却的6种不同封装形式;根据不同的封装形式,器件中的外设配置不尽相同。下面给出了该系列产品中所有外设的基本介绍。这些丰富的外设置,使得STM32F103XX大容量增强型系列微控制器适合于多种应用场合电机驱动和应用控制医疗和手持设备●PC游戏外设和GPS屮台●工业应用:可编程控制器(PLC)、变频器、打印机和扫描仪警报系统、视频对讲、和暖气通风空调系统等图1给出了该产品系列的框图。21器件一览表2STM32F103XC、STM32F103XD和STM32F103XE器件功能和配置外设STM32F103RXSTM32F103VxSTM32F103Zx闪存(K字节)2563845122563845122563845512SRAM(K字节)4864486464FSMC(静杰存储器控制器)无有(1)有通用4个TM2、TM3、TM4、TM5)定时器高级搾制2个(TM1、TM8)基本2个(TM6、TM7SPI(IS)(2)3个(sP1、SP2、SPB),其中SP2和SP可作为S通信2C2个(C1、PC2)通信 USART/UART5个 USART1、 USART2、 USART3、UART4、UART5)接口USB1个USB20全这)CAN1个(20B主动)SDIOGP|O端口518011212位ADC模块(通道数)3(16)3(16)3(21)12位DAC转換器(通道数)2(2)CPU频率72MHZ1作电压2.0-36V环境温度:40℃~+85℃/-40℃~+105℃(见表10)作温度结温度:-40℃-+125℃(见表10)封装形式LQFP64, WLCSP64LQFP100, BGA100LQFP144, BGA1441.对于LQFP100和BGA100封装,只有FSMc的Bank1和Bank2可以使用。Bank1只能使用NE1片选支持多路复用NOR/PSRAM存储器,Bank2只能使用NCE2片选支持一个16位或8位的NAND闪存存储器。因为没有端口G,不能使用FSMC的中断功能。2.SP2和sP3接口能够灵活地作S門模式和S音频模式间切换。参照209年3月STM32F103XCD数据手册英文第5版(本译文仅供参考,如有翻译错误,请以英文原稿为准)5/87STM32F103XC,STM32F103XD,STM32F103xE数据手册22系列之间的全兼容性STM32F103Xx是·个完整的系列,其成员之间是完全地脚对脚兼容,软件和功能上也兼容。在参考手册中,STM32F103x4和STM32F103X6被归为小容量产品,STM32F103X8和STM32F103XB被归为中等容量产品,STM32F103XC、STM32F103XD和STM32F103E被归为大容量产品。小容量和人容量产品是中等容量产品(STM32F103X8/B)的延伸,分别在对应的数据手册中介绍STM32F103x46数据手册和STM32F103xC/D/E数据手册。小容量产品只有较小的闪存存储器、RAM空间和较少的定时器和外设。而大容量的产品则具有较大的闪存存储器、RAM空间和更多的片上外设,如SDO、FSMC、fS和DAC等,同时保持与其它同系列的产品兼容STM32F103x4、STM32F103X6、STM32F103xC、STM32F103XD和STM32F103XE可直接替换中等容量的STM32F103X8/B产品,为用户在产品开发中尝试使用不同的存储容量提供了更大的自由度表3STM32F103XX系列小容量产品中等容量产品大容量产品脚16K闪存32K闪存)64K闪存128K闪存256K闪存384K闪存512K闪存数6K10K20K20K48K或64K64K(2)64KRAMRAMRAMRAMRAMRAMRAM3个 USART+2个UART1444个16位定时器、2个基本定时器3个SP、2个2S、2个C3个 USARTUSB、CAN、2个PWM定时器3个16位定时器3个ADC、1个DAC、1个SD|O642个 USART2个SP、2个PC、USB2个16位定时器CAN、个PWM定时器FSMC(100和144封装0)481个Pl、1个P、USB、1个ADCCAN、1个PWM定时器362个ADC对于订购代码的温度尾缀(6或7)之后没有代码A的产品,其对应的电气参数部分,请参考STM32F103X8/B中等容量产品数据手册。2.只有CSP封装的带256K闪存的产品,才具有64K的RAM3.100脚封装的产品中没有端口F和端口G。23概述23.1ARM的 CortexTm-Mv3核心并内嵌闪存和SRAMARM的 Cortex TM-M3处理器是最新一代的嵌入式ARM处理器,它为实现MCU的需要提供了低成本的平台、缩减的引脚数日、降低的系统功耗,同时提供卓越的计算性能和先进的中断系统响应。ARM的 Cortex ti-M3是32位的RsC处理器,提供额外的代码效率,在通常8和16位系统的存储空间上发挥了ARM内核的高性能。STM32F103XC、STM32F103XD和STM32F103XE增强型系列拥有内置的ARM核心,因此它与所有的ARM工具和软件耒容。图1是该系列产品的功能框图232内置闪存存储器高达512K字节的内置闪存存储器,用于存放程序和数据参照209年3月STM32F103XCD数据手册英文第5版(本译文仅供参考,如有翻译错误,请以英文原稿为准)6/87STM32F103XC,STM32F103XD,STM32F103xE数据手册23.3cRc(循环冗余校验)计算单元CRc(循环冗余校验)计算单元使用一个固定的多项式发生器,从一个32位的数据字产一个CRC码在众多的应用中,基于CRC的技术被用于验证数据传输或存储的一致性。在EN/EC60335-1标准的范围内,它提供了一种检测闪存存储器错误的于段,CRC计算单元可以用于实时地计算软件的签名,并与在链接和生成该软件时产生的签名对比234内置SRAM多达64K字节的内置SRAM,CPU能以0等待周期访问(读/写)23.5FSMc(可配置的静态存储器控制器)STM32F103xC、STM32F103x和STM32F103xE增强型系列集成了FSMC模块。它只有4个片选输出,支持PC卡CF卡、SRAM、 PSRAM、NOR和NAND。功能介绍:三个FSMC中断源,经过逻辑或连到NVC单元写入F|FO;代犸可以在除NAND闪存和PC卡外的片外存储器运行;目标频率fctk为HCLK/2,即当系统时钟为72MHz时,外部访问是基于36MHz时钟;系统时钟为48MHz时,外部访问是基于24MHz时钟。23.6LcD并行接口FsMC可以配置成与多数图现LCD控制器的无缝连接,它支持 FIntel8080和 Motorola6800的模式,并能够灵活地与特定的LCD接口。使用这个LCD并行接口可以很方便地构建简易的图形应用环境,或使用专用加速控制器的髙性能方案。237嵌套的向量式中断控制器(NVc)STM32F103XC、STM32F103XD和STM32F103XE增强型产品内置嵌套的向量式中断搾制器,能够处理多达60个可屏蔽中断通道(不包括16个 Cortex Tm-M3的中断线)和16个优先级。●紧耦合的NVC能够达到低延迟的中断响应处理中断向量入口地址直接进入内核紧耦合的NVC接口●允许中断的早期处理●处理娩到的较高优先级中断●支持中断尾部链接功能●自动保存处理器状态●中断返回时自动恢复,无需额外指令开销该模块以最小的中断延迟提供灵活的中断管理功能238外部中断/事件控制器(EXT)外部中断事件控制器包含19个边沿检测器,用于产生中断事件请求。每个中断线都可以独立地配置它的触发事件(上升沿或下降沿或姒边沿),并能够单独地被屏敞;有个挂起奇仔器维持所有中断请求的状态。EXT可以检测到脉冲宽度小于内部APB2的时钟周期。多达112个通用WO口连接到16个外部中断线。23.9时钟和启动系统时钟的选择是在启动时进行,复位吋内部8MHz的RC振涝器被选为默认的CPU时钟,随后可以选择外部的、具失效监控的4~16MHz时钟;当检测到外部时钟失效时,它将被隔离,系统将自动地切换到内部的RC振荡器,如果使能了中断,软件可以接收到相应的中断。同样,在需要时可以采取对PLL时钟完全的中断管玭(如当一个间接使用的外音振荡器失效时)。参照209年3月STM32F103XCD数据手册英文第5版(本译文仅供参考,如有翻译错误,请以英文原稿为准)7/87STM32F103XC,STM32F103XD,STM32F103xE数据手册多个预分频器用于配置AHB频率、高速APB(APB2)和低速APB(APB1)区域。AHB和高速APB的最高频率是72MHz,低速APB的最高频率为36MHz参考图2的时钟驱动框图。23.10自举模式在启动时,通过自举引脚可以选择三种自举模式中的和:从程序闪存存储器自举从系统存储器自举●从内部SRAM自举自举加载程序( Bootloader)存放于系统存储器中,可以通过 USART1对闪存重新编程23.11供电方案●VDD=2.0~3.6V:VD引脚为l/O引和内部调压器供电。VεsA,√υA=2.0-~-3.6V:为ADC、复位模块、RC振荡器和PL的模拟部分提供供电。使用ADC时,VDA不得小于24V。VpoA和VssA必须分别连接到VDp和∨ssn●VBAT=18~36V:当关闭VpD时,(通过内部电源切换器)为RTC、外部32kHz振荡器和后备寄存器供电。关于如何连接电源引脚的详细信息,参见图12供电方案。23.12供电监控器本产品內部集成了上电复位(POR掉电复位PDR)电路,该电路始终处于上作状态,保证系统在供电超过2V时工作;当VD低于设定的阀值( VPOR/PDR)时,置器件于复位状态,而不必使用外部复位电路。器件中还有一个可编程电压监测器(PVD),它监视V/VpA供电并与阀值∨pv比较,当∨DD低于或高于阀值V时产生中新,中断处押程序可以发出警告信息或将微控制器转入安全模式。PVD功能需要通过程序廾启。关」 VapOr/P和V的值参考表1223.13电压调压器调压器有三个操作模式:主模式(MR)、低功耗模式(LPR)和关断模式●主模式(MR)用于正常的运行操作低功耗模式(LPR)用于CPU的停机模式关断模式用于CPU的待机模式:调压器的输出为咼阻状态,内核电路的供电切断,调压器处于零消耗状态(但寄存器和SRAM的内容将丢失)该调压器在复位后始终处于工作状态,在待机模式下关闭处于高阻输出。23.14低功耗模式STM32F103xC、STM32F103XD和STM32F103xE増强型产品支持三种低功耗模式,可以在要求低功耗、短启动吋间和多种唤醒事件之间达到最佳的平衡。睡眠模式在眠模式,只有CPU停止,所有外设处于工作状态并可在发生中断事件时唤酲CPU。停机模式在保持SRAM和寄存器内容不丢失的情况下,停机模式可以达到最低的电能消耗。在停机模式下,停止所有内部1.8V部分的供电,PLL、HS的RC振荡器和HSE皛体振荡器被关闭,调压器可以被置于普通模式或低功耗模式。可以通过任一配置成EXT的信号把微控制器从停机模式中唤醒,EXT信号可以是16个外部ⅣO口之一、PVD的输出、RTC闹钟或USB的唤醒信号●待机模式在待机模式下可以达到最低的电能消耗。内部的电压调压器被关闭,因此所有内部1.8V部分的供电被切断;PLL、HSI的RC振荡器和HSE晶体振荡器乜被关闭;进入待机模式后,SRAM和寄存器的内容将消尖,但后备寄存器的内容仍然保留,待机电路仍工作,从待杋模式退出的条件是:NRST上的外部复位信号、DG复位、WKUP引脚上的一个上升边沿或RTC的闹钟到时参照209年3月STM32F103XCD数据手册英文第5版(本译文仅供参考,如有翻译错误,请以英文原稿为准)8/87STM32F103XC,STM32F103XD,STM32F103xE数据手册注:在进入停机线待机模式时,和对应的时钟不会数停止2.3.15DMA灵活的12路通用DMA(DMA1上有7个通道,DMA2上有5个通道)可以管理存储器到存储器、设备到存储器和存储器到设备的数据传输:2个DMA控制器支持环形缓冲区的管理,避免了控制器传输到达缓冲区结尾时所产生的中断。每个通道都有专门的硬件DMA请求逻辑,同时可以由软件触发每个通道;传输的长度、传输的源地址和目标地址都可以通过软件单独设置DMA可以用于主要的外设:SP、P2C、 USART,通用、基本和高级控制定时器TMx,DAC、P2s、SD|O和ADC2316RTc(实时时钟和后备寄存器RTC和后备寄存器通过一个廾关供电,在V0有效时该廾关选择VD供电,否则由VAT引脚供电。后备寄存器(42个16位的寄存器)可以用于在关闭VD时,保存84个字节的用户应用数据。RTC和后备寄存器不会被系统或电源复位源复位;当从待机模式唤醒时,也不会被复位。实时时钟具有一组连续运行的计数器,可以通过适当的软件提供日历时钟功能,还具有闹钟中断和阶段性中断功能。RTC的驱动时钟可以是一个使用外部晶体的32.768kHz的振荡器、内部低功耗RC振荡器或高速的外部时钟经128分频。内部低功耗RC振荡器的典型频率为40kHz。为补偿大然晶体的偏差,可以通过输岀一个512Hz的信号对RTC的时钟进行校准。RTC具有一个32位的可编程计数器,使用比较寄存器可以进行长时间的测量。有一个20位的预分频器用于时基时钟,默认情况下时钟为32768kHz时,它将产生一个1秒长的时间基准。23.17定时器和看门狗大容量的STM32F103x增强型系列产品包含最多2个高级控制定时器、4个普通定时器和2个基本定时器,以及2个看门狗定时器和1个系统嘀嗒定时器下表比较了高级控制定时器、普通定时器和基本定时器的功能:表4定时器功能比较匚定时器计数器分辩率计数器类型预分系数产生DMA请求捕获/比纹通道补输出TIM1向上,向下,1-65536之间16位的仁意整数可以TIM向上F下有TIM2TIM316位下,1-65536之间的任意整数可以4TIM4向上/下没有TIM5TIMo16位向上1~65536之间的仁意整数可以TMZ没有高级控制定时器(TIM1和TM8两个高级控制定时器(TM1和TM8)可以被看成是分配到6个通道的三相PWM发生器,它具有带死区插入的互补PWM输出,还可以被当成完整的通用定时器。四个独立的通道可以用于:输入捕获输出比较●产生PWM(边缘或中心对齐模式)●单脉冲输出阽置为16位标准定时器时,它与TIMx定时器具有相同的功能。置为16位PWM发生器时,它具有全调制能力(0~100%)在调试模式下,计数器可以被冻结,同吋PWM输出被禁止,从而切断由这些输出所控制的开关。很多功能都与标准的TM定时器相同,内部结构也相同,因此高级控制定时器可以通过定时器链接功能与TIM定时器协同操作,提供同步或事件链接功能。参照209年3月STM32F103XCD数据手册英文第5版(本译文仅供参考,如有翻译错误,请以英文原稿为准)9/87STM32F103XC,STM32F103XD,STM32F103xE数据手册通用定时器TMx)STM32F103XC、STM32F103xD和STM32F103XE增强型系列产品中,内置了多达4个可同步运行的标准定时器TM2、TIM3、TM4和TM5)。每个定时器都有一个16位的自动加载递加/递减计数器、个16位的预分频器和4个独立的通道,每个通道都可用于输入捕获、输出比较、PWM和单脉冲模式输出,在最大的封装配置中可提供最多16个输入捕获、输出比较或PWM通道。它们还能通过定时器链接功能与高级控制定时器共同工作,提供同步或事件链接功能。在调试模式计数器可以被冻结。任一标准定时器都能用于产生PWM输出。每个定时器都有独立的DMA请求机制这些定时器还能够处理增量编码器的信号,也能处理13个霍尔传感器的数字输出。基本定时器TM6和TM7这2个定时器主要是用」产生DAC触发信号,也可当成通用的16位时基计数器独立看门狗独立的看门狗是基于一个12位的递减计数器和一个8位的预分频器,它由一个内部独立的40kHz的RC振荡器提供时钟;因为这个RC振荡器独立于上时钟,所以它可运行于停机和待机模式。它可以被当成看门狗用于在发生问题时复位整个系统,或作为一个自由定时器为应用程序提供超时管理。通过选项字节可以軋置成是软件或硬件启动看门狗。在调试模式卜,计数器可以被冻结。窗口看门狗窗凵看门狗内有一个7位的递减计数器,并可以设置成自由运行。它可以被当成看门狗用于在发生问题时复位整个系统。它由主时钟驱动,具有早期预警中断功能;在调试模式下,计数器可以被冻结。系统时基定时器这个定时器是专用于实时操作系统,也可当成一个标准的递减计数器。它具有下述特性●24位的递减计数器自动重加载功能●当计数器为0时能产生一个可屏蔽系统中断可编程时钟源2318|C总线多达2个C总线接口,能够工作于多主模式或从模式,支持标准和快速模式。C接口支持7位或10位寻址,7位从模式时支持双从地址寻址。内置了硬件CRC发生器/校验器。它们可以使用DMA操作并支持 SMBuS总线20版/ PMBus总线2319通用同步/异步收发器 USART)STM32F103xC、STM32F103XD和STM32F103xE增强型系列产品中,内置了3个通用同步/异步收发器( USART1、 USART2和 USART3),和2个通用异步收发器UART4和UART5)这5个接凵提供异步通信、支持| DA SIR ENDEO传输编解码、多处理器通信模式、单线半双工通信模式和L|N主/从功能。USART1接口通信速率可达4.5兆位秒,其他接口的通信速率可达225兆位秒。USART1、 USART2和 USART3接口具有硬件的CTS和RTS信号管理、兼容|SO7816智能卡模式和类S門通信模式,除了UART5之外所有其他接口都可以使用DMA操作。2320串行外设接口sP)多达3个SP接冂,在从或主模式下,全双L和半双L的通信速率可达18兆位/秒。3位的预分频器可产生8种主模式频率,可配置成每帧8位或16位。硬件的CRC产生/校验支持基本的SD卡和MMC模式。所有的S門l接口都可以使用DMA操作。参照209年3月STM32F103XCD数据手册英文第5版(本译文仅供参考,如有翻译错误,请以英文原稿为准)10/87
    2020-12-01下载
    积分:1
  • FPGA实现单极性SPWM调制
    【实例简介】采用Verilog语言编写的关于单极性SPWM调制的微型逆变器的程序,内含说明书,说讲解每个模块的作用与逻辑原理,并且附带电路图以及示波器检测的波形结果
    2021-10-29 00:36:11下载
    积分:1
  • 二阶锁频辅助三阶锁相环路滤波器设计.zip
    环路滤波器是通信信号调制解调中最重要的一个部分,环路滤波器设计的好坏将直接影响到接收机的性能指标,二阶锁频辅助三阶锁相环路滤波器可以稳定跟踪具有加加速度的信号源,是现代通信中非常实用的技术,本文中详细编写了单载波信号产生模块、信道噪声模块、数字正交下变频模块、鉴频鉴相模块、环路滤波器模块,并包含了完整的testbench模块,对于初学者非常有用。
    2021-05-06下载
    积分:1
  • pod分解matlab
    POD本征正交分解处理信号,可以对时间序列进行正交化处理。-POD proper orthogonal decomposition processing signal orthogonal treatment of the time series.
    2021-05-06下载
    积分:1
  • vb.net2010二维码开发生成源码,无缝支持中文
    vb.net2010二维码开发生成源码,使用DotNetBarcode.dll,亲测无缝支持中文,可保存bmp、png、jpeg、tiff、gif多种图片格式
    2020-07-03下载
    积分:1
  • C++_WebService_Demon
    C++_WebService_Demon,使用C++实现的基于gsoap的WebService接口程序,包含Server端和Client端
    2021-05-06下载
    积分:1
  • FPGA--图像对比度&亮度调整代码-Verilog
    【实例简介】
    2021-08-05 00:30:59下载
    积分:1
  • 软件工 图书管理系统
    本文档包含下述项目:第1章 系统分析 §1.1 项目的要求、目标和环境 §1.1.1 项目的要求 §1.1.2 项目的目的 §1.1.3 项目的环境 §1.2 可行性分析 §1.2.1 社会可行性分析 §1.2.2 技术可行性分析 §1.2.3 经济可行性分析 第2章 需求分析 §2.1总体需求分析 §2.2 系统数据流图 §2.3 数据字典 §2.3.1 数据字典清单 §2.3.2 外部实体 第3章 概要设计 §3.1 绘制系统H图 §3.2绘制系统软件的HIPO图 第4章 详细设计 §4.1 系统功能详细设计 §4.2 各功能程序流程图 第5章
    2020-12-12下载
    积分:1
  • PCI EXPRESS体系结构导读 PDF
    PCI+EXPRESS体系结构导读,王齐,我下载合为一本,希望对你有帮助。PCI Express体系结构导读王齐编著★机械工业出版社本书讲述了与Pc及 PCI Express总线相关的最为基础的内容,并介绍了一些必要的、与PCI总线相关的处理器体系结构知识,这也是本书的重点所在。深入理解处理器体系结构是理解PCI与 PCI Express总线的重要基础。读者通过对本书的学习,可超越PCI与 PCI Express总线自身的内容,理解在一个通用处理器系统中局部总线的设计思路与实现方法,从而理解其他处理器系统使用的局部总线。本书适用于希望多了解一些硬件的软件工程师,以及希望多了解一些软件的硬件工程师,也可供电子工程和计算机类的研究生自学参考。图书在版编目(CIP)数据PCI Express体系结构导读/王齐编著.一北京:机械工业出版社,2010.3lBN978-7-111-29822-9.①P…Ⅱ.①王…Ⅲ.愚线一结构Ⅳ.①TP35中国版本图书馆CIP数据核字(2010)第028735号机械工业出版社(北京市百万庄大街2号邮政编码1007)责任编辑:车忱责任印制:洪汉军三河市宏达印刷有限公司印刷2010年3月第1版·第1次印刷l84mmx260mm·28.5印张·704T子0O0I-3500册标准书号:ISRN9787-1129829定价;5500元凡购本书,如有缺页、倒页、脱页,由本社发行部调换电话服务网络服务社服务中心:(010)8861066销售一部:(00)6326294门户网:址:/wmok.m销售二部:(010)88379649教材网:htp:∥www.amped.com读者服务部:(O10)6899821封面无防伪标均为盗版序PCI Express总线是新一代的O局部总线标准,是取代PCI总线的革命性总线架构PCI总线曾经是PC体系结构发展史上的一个里程碑,但是随着技术的不断发展,新涌现出的一些外部设备对传输速度和带宽有更高的要求,如千兆和万兆以太网、4Gb/8Gb的 FiberChannel和高速显示设备等。同时有些外部设备对总线的服务质量还有更严格的要求。PCI总线在设计之初并没有考虑这些因素,因此并不能完全满足这些外部设备的需要。PCI Express总线正是在这种背景下应运而生的。在2001年的春季英特尔开发者论坛上,英特尔公布了取代PCI总线的第三代L0技术,当时被称为“3GIO”。经 PCI-SIG审核,于202年7月正式公布了第一版规范,并更名为 PCI Express。从2004年开始, PCI Express总线逐渐全面取代PCI和ACP总线,成为新的局部总线工业标准。与PCI总线的共享并行架构不同, PCI Express总线使用高速串行传送方式,能够支持更高的频率,连接的设备不再像PCI总线那样共享总线带宽。除此之外 PCI Express总线还引人了一些新特性,如流量控制机制、服务质量管理、热插拔支持、数据完整性和新型错误处理机制等。而且 PCI Expres总线在系统软件级与PCI总线保持兼容,最大程度上降低了系统软件从原有的PCI总线体系结构移植到 PCI Expres总线体系结构的难度。目前关于 PCI Express总线规范的文献和书籍已有多种,但多集中在介绍规范本身。对于广大的开发者来说,能够从处理器系统的角度了解 PCI Express总线功能,无疑更有实用价值。无论是系统外部设备的开发、驱动程序的编写,还是其他系统软件的开发,处理器系统始终处于核心位置。本书正是从处理器系统的视角来讲述 PCI Express总线的体系结构,较为细致地介绍了如何使用FPGA实现一个基于PCle总线的外部设备,以及基于Linx系统的 PCI/PCI Express总线驱动程序和设备驱动程序。本书对于 PCI Express总线相关的软硬件开发人员具有很高的参考价值。PCI Express总线规范仍在不断发展。总的来说, PCI Express总线规范提出的最新技术概念往往在英特尔的x86处理器系统和外部设备中最先出现。本书的作者王齐先生,目前工作于英特尔开源技术研究中心,对处理器体系结构和Lmx系统核心技术均有深入研究,相信本书的读者能够从他的经验分享中获益。杨继国英特尔开源技术中心Ⅲ前言PCⅠI与 PCI Express(PCle)总线在处理器系统中得到了大规模应用。 PCISIG也制定了系列PCI与 PCI Express总线相关的规范,这些规范所涉及的内容庞杂广泛。对于已经理解了PCI与 PCI Express总线的工程师,这些规范便于他们进一步获得必要的细节知识。对于刚刚接触PCI与 PCI Express总线的工程师,这些规范性的文档并不适合阅读。在阅读这些规范时,工程师还需要具备一些与体系结构相关的基础知识,这恰是规范并不涉及的内容。对于多数工程师,规范文档适于查阅,而不便于学习。本书将以处理器体系结构为主线介绍 PCI Express总线的组成,以便读者进一步理解PcIExpress总线协议。本书并不是关于PCI和 PCI Express总线的百科全书,因为读者完全可以通过阅读PCI和 PCI Express总线规范获得细节信息。本书侧重的是PCI和 PCI Express总线中与处理器体系结构相关的内容。本书不会对PCI总线的相关规范进行简单重复,部分内容并不在PCI总线规范定义的范围内,例如HOST主桥和RC。PCI总线规范并没有规定处理器厂商如何实现HOST主桥和RC,不同的处理器厂商实现的HOST主桥和RC有较大差异,而这些内容正是本书所讨论的重点。此外本书还讲述了一些在PCI总线规范中提及,但是容易被忽略的一些重要概念。本书共由三篇组成。第Ⅰ篇(第1~3章)介绍PCI总线的基础知识。第Ⅱ篇(第413章)介绍 PCI Express总线的相关概念。第Ⅱ篇的內容以第Ⅰ篇为基础。从系统软件的角度来看, PCI Express总线向前兼容PCI总线,理解 PCI Express总线必须建立在深刻理解PCI总线的基础之上。读者需要按照顺序阅读这两篇。第1章主要说明PCl总线涉及的一些基本知识。有些知识稍显过时,但是在PC总线中出现的一些数据传送方式,如 Posted、Nn- Posted和 Split数据传送方式,依然非常重要,也是读者需要掌握的。第2章重点介绍PCI桥。PCI桥是PCI及 PCI Express体系结构的精华所在,本章还使用了一定篇幅介绍了非透明桥。非透明桥不是PCI总线定义的标准桥片,但是在处理器系统之间的互联中得到了广泛的应用。第3章详细阐述PCI总线的数据传送方式,与 Cache相关的内容和预读机制是本章的重点。目前pC与 PCI Express对预读机制的支持并不理想。但是在可以预见的将来, PCI EXpres总线将充分使用智能预读机制进一步提高总线的利用率。第4章是 PCI Express篇的综述。第5章以 Intel的笔记本平台 Montevina为例说明RC的各个组成模块。实际上RC这个概念,只有在x86处理器平台中才真正存在。其他处理器系统中,并不存在严格意义上的RC。第6、7章分别介绍 PCI Express总线的事务层、数据链路层和物理层。物理层是PCIExpress总线的真正核心,也是中国工程师最没有机会接触的内容。这也是我们这一代工程师的遗憾与无奈。第8章简要说明了 PCI Express总线的链路训练与电源管理。第9章主要讨论的是通用流量控制的管理方法与策略。 PCI Express总线的流量控制机Ⅳ制仍需完善,其中不等长的报文长度也是限制 PCI Express总线流量控制进一步提高的重要因素。第10章重点介绍MS和MSI-X中断机制。MS中断机制在PCI总线中率先提出,但是在PCⅠ Express总线中也得到大规模普及。目前x86架构多使用MSIX中断机制,而在许多嵌入式处理器中仍然使用MSI中断机制。第11章的篇幅很短,重点介绍PCI和 PCI Express总线中的序。有志于学习处理器体系结构的工程师务必掌握这部分内容。在处理器体系结构中有关 Cache和数据传送序的内容非常复杂,掌握这些内容也是系统工程师进阶所必须的。第12章讲述了笔者的一个实际设计—Capc卡,简单介绍了 Linux设备驱动程序的实现过程,并对 PCI Express总线的延时与带宽进行了简要分析。第13章介绍PCI总线与虚拟化相关的一些内容。虚拟化技术已崭露头角,与虚拟化相关的一系列内容将对处理器体系结构产生深远的影响。目前虚拟化技术已经在x86和 PowerPC处理器中得到了广泛的应用第Ⅲ篇以Linx系统为实例说明PCI总线在处理器系统中的使用方法,也许有许多读者对这一篇有着浓厚的兴趣。Iinx无疑是一个非常优秀的操作系统。但是需要提醒系统工程师,lix系统仅是一个完全开源的操作系统。对于有志于学习处理器体系结构的工程师,学习 Linux系统是必要的,但是仅靠学习 Linux系统并不足够。通常说来,理解处理器体系结构至少需要了解两三种处理器,并了解它们在不同处理器上的实现。尺有所短,寸有所长。不同的处理器和操作系统所应用的领域并不完全相同。也是因为这个原因,本书以 PowerPC和x86处理器为基础对PCI和 PCI Express总线进行说明。本书在写作过程中得到了我的同事和在处理器及操作系统行业奋战多年的朋友们的帮助。在Linx系统中许多与处理器和PCI总线相关的模块,都有着他们的辛勤付出。刘建国和郭超宏先生审阅了本书的第Ⅰ篇。马明辉先生审阅了本书的第Ⅱ篇。张巍、余珂与刘劲松先生审阅了第13章。吴晓川、王勇、丁建峰、李力与吴强先生共同审阅了全书。本书第12章中出现的 Capric和 Cornus卡由郭冠军和高健协助完成。看着他们通过对PCI Express总线理解的逐渐深入,最终设计出一个具有较高性能的 Cornus卡,备感欣慰。此外杨强浩先生也参与了 Capric和 Cornus卡的原始设计与方案制定,在此对他及他的团队在这个过程中给予的帮助表示感谢,我们也一道通过这两块卡的制作进一步领略了 PCI EX-press总线的技术之美。个优秀的协议,从制定到广大技术人员理解其精妙之处,再到协议应用到一个个优秀产品中,需要更多的人参与、投人、实践,这也是编写此书最大的动力源泉。本书的完成与我的妻子范淑琴的激励直接相关, Capricornus也是她的星座。还需要感谢本书的编辑车忱与策划时静,正是他们的努力使得本书提前问世。对本书尚留疑问的读者,可通过我的邮箱sailing.w@gmail.com与我联系。最后希望这本书对您有所帮助。作者目录序前言第丨篇PC|体系结构概述第1章PC|总线的基本知识3第2章PC|总线的桥与配置……281.1PCI总线的组成结构………52.1存储器域与PCI总线域…281.1.1HOsT主桥2.1.ICPU域、DRAM域与存储器域…291.1.2PCI总线…………72.1.2PCI总线域…301.1.3PCI设备…………1.3处理器域1.1.4HOST处理器82.2HOST主桥…………321.1.5PCI总线的负载…2.2.1PCI设备配置空间的访间机制……331.2PCI总线的信号定义曹重量自道2.2.2存储器域地址空间到PCI总线1.2.I地址和数据信号中看语面“,·域地址空间的转换1.2.2接口控制信号……02.2.3PCI总线域地址空间到存储器123仲裁信号……………12域地址空间的转换…………371.2.4中断请求等其他信号····:122.2.4x86处理器的HOST主桥………401.3PCI总线的存储器读写总线事务…132.3PCI桥与PCI设备的配置空间…421.3.1PCI总线事务的时序…142.3.1PI桥………………………421.3.2 Posted和Non- Posted传送方式………52.3.2 PCI Agent设备的配置空间………441.3.3HOST处理器访问PCI设备162.3.3PCI桥的配置空间501.3.4PCI设备读写主存储器……82.4PCI总线的配置…………531.3.5 Delayed传送方式……24.1Type01h和 Type 00h配置请求1.4PCI总线的中断机制…22.42PCI总线配置请求的转换原则…551.4.1中断信号与中断控制器的连接2.4.3PCI总线树Bus号的初始化…关系………………………………212.4.4PCI总线 Device号的分配……591.4.2中断信号与PCI总线的连接2.5非透明PCI桥关系……2225.1 Intel21555中的配置寄存器…621.4.3中断请求的同步………………23252通过非透明桥片进行数据传递…631.5PCI-X总线简介…吾量由……252.6小结651.5.1 Split总线事务…25第3章PC总线的数据交换甲·看当血61.5.2总线传送协议………263.1PCI设备BAR空间的初始化……6653基于数据块的突发传送…3.1.1存储器地址与PCI总线地址1.6小结27的转换3.1.2PCI设备BAR寄存器和PCI桥空间进行DMA读写……………8Base、 Limit寄存器的初始化3.3.4PCI设备进行DMA写时发生3.2PCI设备的数据传递69Cache命中………………………823.2.1PCI设备的正向译码与负向3.3.5DMA写时发生 Cache命中译码………………………………69的优化………85322处理器到PC设备的数据传送…713.4预读机制……863.2.3PCI设备的DMA操作……………723.4.1指令预读3.24PCI桥的 Combining、 Merging34.2数据预读···89和 Collapsing中··自串暮暮福品品画733.4.3软件预读…93.3与 Cache相关的PCI总线事务…74344硬件预读……933.3.1 Cache一致性的基本概念…3.4.5PCI总线的预读机制…………943.3.2PCI设备对不可 Cache的存储器3.5小结··即自甲要普有当布普面首由a…98空间进行DMA读写3.3.3PCI设备对可 Cache的存储器第‖篇Pc| Express体系结构概述第4章PCe总线概述5.1.1 EPBAR寄存器……1444.1PCIe总线的基础知识…………lO51.2 MCHBAR寄存器………………1444.1.1端到端的数据传递……………0n5.I.3其他寄存器…………l444.1.2PCle总线使用的信号…1035.2 Montevina平台的存储器空间的4.1.3Pcle总线的层次结构…07组成结构………………,1454.1.4Pcle链路的扩展…I085.2.1 Legacy地址空间…………l474.1.5PCIe设备的初始化…………Il052.2DRAM域474.2PCe体系结构的组成部件……25.2.3存储器域…144.2.1基于PC架构的处理器系统…25.3存储器域的PCI总线地址4.2.2RC的组成结构………………1l7间……………………………504.2.3 Switch解着喜+「中··鲁曲曲「85.3.1PCI设备使用的地址空间………1504.24VC和端口仲裁……1205.3.2FCIe总线的配置空间………………5l425 PCle-to-PCLPCI-X桥片………1225.4小结·::···中.d;=·".:7544.3PCIe设备的扩展配置空间…123第6章PCe总线的事务层…7554.3.1 Power Management Capability6.1TLP的格式155结构l246.1.1通用TP头的Fmt字段和Ty4.3.2 PCI Express Capability结构127字段………………………1564.3.3 PCI Express Extended Capabilities6.1.2TC字段…………………………l58结构…………………l36.1.3Amr字段……………………………1594.4小结l396.1.4通用TLP头中的其他字段160第5章 Montevina的MCH和|CH…1406.2TLP的路由……1615.1PCI总线0的Deve0设备……,1416.2.1基于地址的路由Ⅶ6.2.2基于ID的路由8.1.3 Receiver detect识别逻辑2176.2.3隐式路由……暴音前自mm1668.2 LTSSM状态机…2I86.3存储器、LO和配置读写8.2.1 Detect状态…………220请求TIP……………….1678.22 Polling状态…………………22l6.3.1存储器读写请求TLP…………1688.2.3 Configuration状态………2236.3.2完成报文……………………1728.2.4 Recovery状态22863.3配置读写请求mP……………1741748.2.5 LTSSM的其他状态……2316.34消息请求报文………………758.3PCle总线的 ASPM……………2326.3.5PCIe总线的原子操作……1778.3.1与电源管理相关的链路状态…23263.6 TLP Processing Hint∴……………i788.3.2D0状态…………………………2336.4TLP中与数据负载相关的8.3.3I0状态………………234参数………………………1818.3.4Ll状态…2356.4.1 Max_Payload_Size参数………·l88.3.5L2状态…2366.4.2 Max_ Read_ Request_Siz参数…l828.4 PCI PM机制……4日#······世23764.3RCB参数……………………838.4.1PCle设备的 D-State…………2376.5小结8.4.2D- State的状态迁移238第7章PCe总线的数据链路层与8.5小结………………………………240物理层·普自·自:.吾.“:a日平;.千画185第9章流量控制··自自·着暮;品吾.“中24l7.l数据链路层的组成结构………1859I流量控制的基本原理………2427.1.1数据链路层的状态…………1869.1.1Rate- Based流量控制………………2437.L.2事务层如何处理DL_Down和9.1.2 Credit- Based流量控制244状态1899.2 Credit- Based机制使用的算法…2467.1.3DILP的格式……………8992.1N23算法和N123+算法2497,2ACK/NAK协议………………1919.2.2N23算法……25072.I发送端如何使用ACK/NAK9.2.3流量控制机制的缓冲管理……252协议1929.3PCle总线的流量控制2547.2.2接收端如何使用ACK/NAK9.3.lPCe总线流量控制的缓存协议…………………………l95管理25572.3数据链路层发送报文的顺序……19993.2 Current节点的 Credit…2577.3物理层简介…9.3.3VC的初始化……………2597.3.,1PCle链路的差分信号…………20093.4PCIe设备如何使用FCP…26l7.3.2物理层的组成结构…………2049.4小结………………,2627.3.38/10b编码与解码…………206第10章MS和MS|X中断机制2637.4小结………………21010.1 MSI MSI-X Capability结构…263第8章PCe总线的链路训练与电源10.1.1 MSI Capability结构………264管理……………………………2l10.1.2MsL- X Capability结构………2668. 1 PCle链路训练简介……2/10.2 PowerPC处理器如何处理8.1.1链路训练使用的字符序列……213MSI中断请求……………2688.1.2 Electrical Idle状态-u+aiua,21610.2.1MSI中断机制使用的寄存器270Ⅷ
    2020-12-12下载
    积分:1
  • Labview调用Matlab简单例(用MATLAB script技术)
    本例程用Labview调用matlab的方法实现了简单的乘法运算。只要在laview前面板中输入两个乘数立即得到结果。本程序简单易懂,学习者一看就会。注意的是要同时安装labview和matlab软件的计算机才能正确运行。
    2020-12-07下载
    积分:1
  • 696516资源总数
  • 106913会员总数
  • 8今日下载