精华内容
下载资源
问答
  • JTAG有10pin的、14pin的和20pin的,尽管引脚数和引脚的排列顺序不同,但是其中有一些引脚是一样的,各个引脚的定义如下。 一、引脚定义 Test Clock Input (TCK) --
    原文地址为:
    JTAG各类接口针脚定义、含义以及SWD接线方式
    

     JTAG有10pin的、14pin的和20pin的,尽管引脚数和引脚的排列顺序不同,但是其中有一些引脚是一样的,各个引脚的定义如下。

    一、引脚定义

    Test Clock Input (TCK) -----强制要求1

    TCK在IEEE1149.1标准里是强制要求的。TCK为TAP的操作提供了一个独立的、基本的时钟信号,TAP的所有操作都是通过这个时钟信号来驱动的。

    Test Mode Selection Input (TMS) -----强制要求2

    TMS信号在TCK的上升沿有效。TMS在IEEE1149.1标准里是强制要求的。TMS信号用来控制TAP状态机的转换。通过TMS信号,可以控制TAP在不同的状态间相互转换。

    Test Data Input (TDI) -----强制要求3

    TDI在IEEE1149.1标准里是强制要求的。TDI是数据输入的接口。所有要输入到特定寄存器的数据都是通过TDI接口一位一位串行输入的(由TCK驱动)。

    Test Data Output (TDO) -----强制要求4

    TDO在IEEE1149.1标准里是强制要求的。TDO是数据输出的接口。所有要从特定的寄存器中输出的数据都是通过TDO接口一位一位串行输出的(由TCK驱动)。

    Test Reset Input (TRST) ----可选项1

    这个信号接口在IEEE 1149.1标准里是可选的,并不是强制要求的。TRST可以用来对TAPController进行复位(初始化)。因为通过TMS也可以对TAP Controll进行复位(初始化)。所以有四线JTAG与五线JTAG之分。

     (VTREF) -----强制要求5

    接口信号电平参考电压一般直接连接Vsupply。这个可以用来确定ARM的JTAG接口使用的逻辑电平(比如3.3V还是5.0V?)

    Return Test Clock ( RTCK) ----可选项2

    可选项,由目标端反馈给仿真器的时钟信号,用来同步TCK信号的产生,不使用时直接接地。

    System Reset ( nSRST)----可选项3

    可选项,与目标板上的系统复位信号相连,可以直接对目标系统复位。同时可以检测目标系统的复位情况,为了防止误触发应在目标端加上适当的上拉电阻。

    USER IN

    用户自定义输入。可以接到一个IO上,用来接受上位机的控制。

    USER OUT

    用户自定义输出。可以接到一个IO上,用来向上位机的反馈一个状态

    由于JTAG经常使用排线连接,为了增强抗干扰能力,在每条信号线间加上地线就出现了这种20针的接口。但事实上,RTCK、USER IN、USER OUT一般都不使用,于是还有一种14针的接口。对于实际开发应用来说,由于实验室电源稳定,电磁环境较好,干扰不大。

     

    二、20、14、10pin JTAG的引脚名称与序号对应关系

    值得注意的是,不同的IC公司会自己定义自家产品专属的Jtag头,来下载或调试程序。嵌入式系统中常用的20、14、10pin JTAG的信号排列如下:


    需要说明的是,上述Jtag头的管脚名称是对IC而言的。例如TDI脚,表示该脚应该与IC上的TDI脚相连,而不是表示数据从该脚进入download cable。

    实际上10针的只需要接4根线,4号是自连回路,不需要接,1,2接的都是1管脚,而8,10接的是GND,也可以不接。

     附转接板电路:

     

     

    JTAG接口的SWD接线方式

    JTAG引脚示意图:

     

    一、SWD 和传统的调试方式区别

    1. SWD 模式比 JTAG 在高速模式下面更加可靠

    2. GPIO 刚好缺一个的时候, 可以使用 SWD 仿真, 这种模式支持更少的引脚

    3. 在板子的体积有限的时候推荐使用 SWD 模式

    二、仿真器对 SWD 模式支持情况

    1. 市面上的常用仿真器对 SWD 模式支持情况

    JLINKV8 非常好的支持 SWD 仿真模式, 速度可以到 10M

    ULINK2 非常好的支持 SWD 模式, 速度可以达到 10M

    2. SWD 硬件接口上的不同

    (1) JLINKV7 需要的硬件接口为: GND, RST, SWDIO, SWDCLK
    (2) JLINKV8 需要的硬件接口为: VCC, GND, RST, SWDIO, SWDCLK (注:下面有我自己用JLINKV8的实际连线及相应实验结果)
    (3) ULINK1 不支持 SWD 模式
    (4) ULINK2 需要的硬件接口为: GND, RST, SWDIO, SWDCLK
    三、在 MDK 中SWD 模式的设置

    正常的JTAG需要20管脚,而J-Link 的SWD只需要2根线(PA13/JTMS/SWDIO、PA14/JTCK/SWCLK)就够了(加上电源线也就4根),这样就节省了3个I/O口(PA15/JTDI、PB3/JTDO、PB4/JNTRST)为其它所用,并且可节省一部分板子的空间(只需4个口就可以了)

    第一步:

    第二步:

    另外, JTAG引脚可以被复用为IO口,但是这样一来,JLINK就不能够连上芯片了。解决的方法有两种:
        (1)另写一段程序,不要将JTAG复用为I/O口,然后将这段程序用串口工具写入芯片中
        (2)将BOOT0/BOOT1设置成为内部RAM启动,那么上电后就不会执行FLASH中的程序,这样JLINK就能顺利“接管”JTAG引脚

     

     

    实例应用

    10针JTAG与20针JTAG的连接:

    下面说一下接法,其实根本不需要什么转接板什么的,直接把相应的几根线对接就可以用了,所以要参考电路图,上面为TQ2440开发板的JTAG电路图,下面为JLINK的20针电路图,下面的JLINKV7电路图是标准接口,网上到处都能找到

     

    10针JTAG针序

    20针JTAG针序

    信号

    1,21VTref
    -2NC
    33nTRST
    -4GND
    55TDI
    -6GND
    77TMS
    88GND
    99TCK
    1010GND
    -11RTCK
    -12GND
    613TDO
    -14GND
    415RESET
    -16GND
    -17DBGRQ
    -18GND
    -195V-Supply
    -20GND

    实际上只需要接4跟线,4号是自连回路,不需要接,1,2接的都是1管脚,而8,10接的是GND,也可以不接


    转载请注明本文地址: JTAG各类接口针脚定义、含义以及SWD接线方式
    展开全文
  • 1. 分位数定义 分位数还是序列的数,只不过序列要首先进行排序; quantile initially assigns the sorted values in X to the (0.5/n), (1.5/n), …, ([n – 0.5]/n) quantiles. For example: ((1:n)-.5)/n n ...
    • 分位数有种积分(累积)的含义在。
    • 分位数(即将数据由低至高排列,小于该数的数据占总体的比例达到时最终落到的数):
      • 10%:3000元
      • 20%:5200元
      • 50%:20000元
      • 80%:41500元
      • 90%:50000元

    1. 分位数定义

    分位数还是序列中的数,只不过序列要首先进行排序;

    quantile initially assigns the sorted values in X to the (0.5/n), (1.5/n), …, ([n – 0.5]/n) quantiles. For example:

    ((1:n)-.5)/n

    n 表示序列的长度;

    • For a data vector of six elements such as {6, 3, 2, 10, 8, 1}, the sorted elements {1, 2, 3, 6, 8, 10} (先排序)respectively correspond to the (0.5/6), (1.5/6), (2.5/6), (3.5/6), (4.5/6), and (5.5/6) quantiles.
    • For a data vector of five elements such as {2, 10, 5, 9, 13}, the sorted elements {2, 5, 9, 10, 13} respectively correspond to the 0.1, 0.3, 0.5, 0.7, and 0.9 quantiles.

    2. 自定义函数

    function val = SpecialPercentile(arr, pct)
    
        len = length(arr);
        ind = floor(pct/100*len);                   % floor 取整,因为该数要作为索引
        newarr = sort(arr);                         % 排序,渐增排序;
        val = newarr(ind);
    
    end

    3. matlab 内置函数

    Y = prctile(X,p)
    rng('default'); % for reproducibility
    x = normrnd(5,2,1,10)
    x =
         6.0753    8.6678    0.4823    6.7243    5.6375    2.3846    4.1328   5.6852   12.1568   10.5389
    Y = prctile(x,42)
    Y =
        5.6709
    展开全文
  • JTAG线序与定义(二)

    千次阅读 2018-03-15 14:17:00
    继上篇JTAG上下拉电阻(一)之后关于全功能JTAG的线序与定义。 JTAG连接器线定义示意图。 1,全功能JTAG信号定义(https://www.cnblogs.com/jeakon/archive/2012/10/07/2813683.html) JTAG有10pin的、14pin...

    继上篇JTAG上下拉电阻(一)之后关于全功能JTAG的线序与定义。

    JTAG连接器线序定义示意图。

    1,全功能JTAG信号定义(https://www.cnblogs.com/jeakon/archive/2012/10/07/2813683.html)

    JTAG有10pin的、14pin的和20pin的,尽管引脚数和引脚的排列顺序不同,但是其中有一些引脚是一样的,各个引脚的定义如下。

    一、引脚定义

    Test Clock Input (TCK) -----强制要求1

    TCK在IEEE1149.1标准里是强制要求的。TCK为TAP的操作提供了一个独立的、基本的时钟信号,TAP的所有操作都是通过这个时钟信号来驱动的。

    Test Mode Selection Input (TMS) -----强制要求2

    TMS信号在TCK的上升沿有效。TMS在IEEE1149.1标准里是强制要求的。TMS信号用来控制TAP状态机的转换。通过TMS信号,可以控制TAP在不同的状态间相互转换。

    Test Data Input (TDI) -----强制要求3

    TDI在IEEE1149.1标准里是强制要求的。TDI是数据输入的接口。所有要输入到特定寄存器的数据都是通过TDI接口一位一位串行输入的(由TCK驱动)。

    Test Data Output (TDO) -----强制要求4

    TDO在IEEE1149.1标准里是强制要求的。TDO是数据输出的接口。所有要从特定的寄存器中输出的数据都是通过TDO接口一位一位串行输出的(由TCK驱动)。

    Test Reset Input (TRST) ----可选项1

    这个信号接口在IEEE 1149.1标准里是可选的,并不是强制要求的。TRST可以用来对TAPController进行复位(初始化)。因为通过TMS也可以对TAP Controll进行复位(初始化)。所以有四线JTAG与五线JTAG之分。

     (VTREF) -----强制要求5

    接口信号电平参考电压一般直接连接Vsupply。这个可以用来确定ARM的JTAG接口使用的逻辑电平(比如3.3V还是5.0V?)

    Return Test Clock ( RTCK) ----可选项2

    可选项,由目标端反馈给仿真器的时钟信号,用来同步TCK信号的产生,不使用时直接接地。

    System Reset ( nSRST)----可选项3

    可选项,与目标板上的系统复位信号相连,可以直接对目标系统复位。同时可以检测目标系统的复位情况,为了防止误触发应在目标端加上适当的上拉电阻。

    USER IN

    用户自定义输入。可以接到一个IO上,用来接受上位机的控制。

    USER OUT

    用户自定义输出。可以接到一个IO上,用来向上位机的反馈一个状态

    由于JTAG经常使用排线连接,为了增强抗干扰能力,在每条信号线间加上地线就出现了这种20针的接口。但事实上,RTCK、USER IN、USER OUT一般都不使用,于是还有一种14针的接口。对于实际开发应用来说,由于实验室电源稳定,电磁环境较好,干扰不大。

    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

     2018-5-8补充

    TAP=Test Access Port,测试访问端口,JTAG的IO方向以IC作为判断,如TCK为输出指IC JTAG接收外部输入的Clock信号。RTCK为IC JTAG反馈给仿真器的始终信号。如果IC JTAG没有这个信号,直接将仿真器RTCK接地即可。

    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

     二、20、14、10pin JTAG的引脚名称与序号对应关系

    嵌入式系统中常用的20、14、10pin JTAG的信号排列如下:

     

    2, 两线制JTAG定义。

    SWDIO/SWCLK在线序上是与TMS/TCLK复用,实际设计JTAG电路时需要关注。注意,TMS为上拉,TCLK为下拉,无需变更。VCC/GND与5线制JTAG完全相同。

    3,JTAG上RESET接法。JTAG的RESET需要接到ARM CORE的RESET,曾遇一坑,JTAG的RESET与ARM CORE的RESET未连接,在上电的条件下,J-LINK能识别ARM内核。但是IAR在实际操作过程中,无法链接到主程序,结论是IAR配合JTAG对主板进行复位操作无法实现。

    J-LINK如何链接到ARM内核:单纯的ARM内核的复位,可以采用TMS拉高,CLK的5个周期复位TAP。

    所以,为了保证能正常使用IAR或者其他编译调试上位机软件,将JTAG RESET与ARM CORE连接,是有必要的。

     

    转载于:https://www.cnblogs.com/legend-yuan/p/8573200.html

    展开全文
  • HDMI接口定义,传输流程

    万次阅读 2019-06-12 16:45:10
    40bit的kvs,每一个bit都是一个索引,当kvs的某一n为1时,会把key[n]取出来, 把所有的key[n]相加,得到km, Receiver也会做HDCP认证码算法这个步骤得到km' Transmitter与Receiver都会用km\km'去做hdcpBlkCipher,...

    全文摘自:https://www.cnblogs.com/TaigaCon/p/3840653.html


    HDMI,全称为(High Definition Multimedia Interface)高清多媒体接口,主要用于传输高清音视频信号。

     

    HDMI引脚:

    HDMI有A,B,C,D,E五种引脚类型,目前市面中比较常见的就是Type A:

    其中

    • 1-9 都是TMDS数据传输实际上用到的引脚,分为0,1,2三组
    • 10-12 为TMDS时钟信号,如当前Video Timing为480p@60Hz(Htotal:800,Vtotal:525),则TMDS clock = 800x525x60 = 25.2MHz。TMDS clock就像是对像素的打包,一个clock分别在三个Channel传输一个像素的R、G、B(8bit)信号。
    • 13 为CEC(consumer electronic control)类似一种扩展的HDMI功能,供厂家自己定制HDMI消息,(比如说你有一台sony的DVD与TV,两者用HDMI线接上,如果你用TV的遥控器可以控制DVD,另DVD执行某种功能,那么该功能的命令信号就是通过TV与DVD间的CEC引脚传输的)
    • 14 为保留引脚,未使用(或者也可以为CEC提供多一个引脚)
    • 15-16 为I2C引脚,用于DDC(Display Data Channel,主要用于EDID与HDCP的传输)传输,具体可以查看。在HDMI的流程中,DDC通信几乎是最先做的(前有Hotplug),因为HDMI的主从两个设备需要通过DDC来获得他们对方设备的EDID,从而得到各种信息,并且通过比较timming以确定以后送出来的timming为最合适的
    • 17 为接地引脚
    • 18 为5v的AC引脚
    • 19 为Hotplug(热拔插)引脚(用于监测HDMI设备有没有存在,如果存在(Hotplug为high)那么可以通过DDC去读EDID),HDMI有规定在HDMI 5vAC断电时source device可以读reciever device的EDID,也就是需要Hotplug为High。其中有两种Hotplug相关的情况会导致HDMI被识别为DVI:
      1. Hotplug为High,不过EDID并没有准备好,那么信号源设备会由于无法读到EDID而认为接收设备为DVI,这样会导致HDMI有图像无声的问题。
      2. Hotplug为Low,也会导致信号源无法读到EDID而认为接收设备为DVI,从而导致HDMI有图无声
      3. 在TV这种有多个HDMI通道的情况下,有时会在多个HDMI通道进行切换,切换后HDMI通道应当先初始化,即先把Hotplug拉低,通知HDMI source device之前所用的EDID已经改变,需要重新读取,那么source device在Hotplug被拉高的时候会去读取新的EDID,但是拉低这个过程至少需要100ms,否则source device有可能不会去读取新的EDID,从而输出DVI信号

     

    传输流程

    HDMI TMDS传输的数据类型有三种(加上Hsync与Vsync就算4种):

    1. Preamble(控制信息),主要用于控制接下来传输的数据是Data Island或者Video Data
    2. Data Island(数据包),各种类型的包信息,包括音频数据包,图像信息包等
    3. Video Data (视频信息),视频像素数据,HDMI可以传输RGB与YUV两种格式的像素数据
    4. 还有Hsync与Vsync

    HDMI的数据传输有TMDS0,TMDS1,TMDS2三个通道,每个通道的传输流程都是一样的:

      

    如果是8bit的数据进入TMDS编码器,得到抗干扰性强的10bit TMDS信号,然后再进行串行化输出;在接收端收到串行的HDMI信号后,进行信号复原,得到10bit的TMDS信号,最后用TMDS解码器解码得到原来的8bit数据。

    总体传输流程如下:

      

      

    1. 如果传输的是Video Data,并且格式为RGB,那么会占用三个通道的所有24bit输入,Channel0[7:0]用于传输B,Channel1[7:0]用于传输G,Channel2[7:0]用于传输R。
    2. 如果传输的是Data Island,则占用三个通道共10bit输入,Channel0[3:2]用于传输Data Island Header(包头),Channel1[0:3]与Channel2[0:3]用于传输Data Island Content(包内数据)。
    3. 如果传输的是Preamble,则占用1,2两个通道共4bit输入,Channel1[1:0]与Channel2[1:0]分别为CTL0,CTL1,CTL2,CTL3,用于判断接下来输入的是Video Data或者Data Island

    对于Hsync与VSync,会占用Channel0通道的两个bit输入,Channel0[0]为Hsync,Channel0[1]为Vsync

     

    传输周期

    HDMI的TMDS数据传输可以分为三个传输周期:

    1. Control Period期间会传输Hsync,Vsync,并且在该时期的最后阶段会传输Preamble
    2. Data Island Period期间会传输Data Island(数据包),也会有Hsync与Vsync
    3. Video Data Period期间会传输Video Data(视频像素数据)

    某帧的总体周期如下:

      

    三个传输周期的过渡如下:

      

    1. 左边是Control Period,传输有Hsync,Vsync与Preamble
    2. 中间是Data Island Period,传输有Hsync,Vsync,以及两个Packet Header与Packet(每32个clock 一个packet);另外Data Island的两端会用Guard Band保护并隔开Data Island的数据,因为这个阶段传输的数据大多是非常重要的,比如其中就有图像分辨率,决定后面的Video Data数据的显示方式
    3. 右边是Video Data Island,传输视频像素数据,在该时期的开头也有Guard Band

     

    Data Island Packet结构

      

    所有Data Island Packet都以32个时钟脉冲为一个周期,也就是说每32 clk传输一个包。

    以上图为例,

    1. 包头部是BCH block 4,由Channel0[2]传输,32clk表示有32bit,则为4byte,前三个byte为包头,最后一byte为校验码
    2. 包体为BCH block 0,1,2,3,分别由Channel1,Channel2共8根线传输,共有24byte与6byte的校验码
    3. Parity Bits校验码是用于检验HDMI Cable传输过程中是否发生了错误,如果该Packet在HDMI接收端校验错误,如果只有一个bit的错误,那么可以修正,超过1bit的错误会被判别为无效Packet(由于HDMI是一直在发送数据因此无法重发错误Packet?)

    所以说,在接收端,在解完包之后,需要取出各个BCH block的Parity bit,进行Calibration(校验)

    Packet类型各种各样,详细请看HDMI Spec

     

    Audio Clock

    Audio的采样率有44100,48000,192000等,是各种各样,在HDMI传输时,Audio是PCM级(无压缩)传输,把PCM数据打散到各个包内,为了得到每个音频帧的数据,也需要知道Audio的采样率。HDMI中规定Audio的传输方式:

    Audio采样率fs重建依靠的主要参数为:

    1. TMDS Clock
    2. CTS
    3. N

    在发送设备这端,已知参数有采样率fs,视频时钟Video Clock(TMDS clock),以及预先设定好的参数N,求CTS:

    在接收设备这端,TMDS clock通过硬件设备可以得到,N,与CTS通过Audio Packet传输过来,求fs:

    在接收端为了保持fs的稳定与精确,需要进行锁相,即用VCO(Voltage-controlled oscillator压控振荡器,通过电压控制产生的频率)产生合适的频率,然后用PFD(Phase Frequency Detector)来锁频

     

    1. 首先,由于VCO有个最佳的工作区域如(200MHz~500MHz),那么为了保证VCO在最佳工作频率内,我们可以从后倒推回来,先对输出的fa128做乘法得到
      由于只有那么几种(44.1k,48k等),所以比较容易得到与
    2. 然后,为了更快进行频率匹配,需要对近来的频率(就是晶振时钟)或者(pixel clock)做除法,也对做除法,令两个趋向相等。对于细微的区别可以用D Code 进行修正
    3. 最后做PFD锁相
    4. 第2,3步的反馈操作循环地进行,最后可以得出比较稳定的
    5. 最终得到

     

    HotPlug

    HotPlug即热拔插,当接上接口时就可以判定设备是否存在,以进行后续工作。

    HDMI source device(HDMI HPD)会监测sink device的Hotplug端口,如果Hotplug为High,则证明设备可以工作,然后去读取DCC,如果为low,则证明设备已断开。

    HDMI sink device应该通过把Hotplug拉低,来通知source device EDID已经被改变,那么source device在Hotplug被拉高后,就会重新来读取新的EDID,拉低这段时间应该多于100ms。

    HDMI规定,HDMI 的5v引脚通电时,可以通过DCC去读取EDID,即需要保证Hotplug为high,有些Hotplug是直接接到5V上的(如下)。

    Hotplug接法:(HDMI HPD(Hotplug detect ?)检测sink的Hotplug端)

    上面用5V引脚进行供电,并接上Hotplug,这样做就能保证每次source device接上sink device时,都可以去读取到EDID。但是这样做有一个缺点,当5V电源断开时,会有5v的电压回灌给HDMI HPD与Hotplug,5V电压会冲击Hotplug,一旦Hotplug引脚无法承受5V电压的回灌,会被打穿。

    下面有个较好的Hotplug接法:

     

    上面用的是额外的GPIO引脚加上三极管控制HDMI HPD为0还是1,如果HDMI0_HPD_CTL输出0,那么三极管断开,HDMI0_HPD侦测到High,如果HDMI0_HPD_CTL输出1,那么三极管打通,HDMI0_HPD侦测到low。

     

    HDMI Sink

    例如像TV这种就是HDMI的接收端,那么HDMI接收端需要做些什么东西。

    HDMI可以接收到的有三个通道的TMDS Data,TMDS Clock,可以设置Hotplug,还有DCC传输用的I2C引脚。上面已经讲了TMDS Data,与设置Hotplug,接下来分析TMDS Clock。

    TMDS Clock 就是Pixel Clock,即一个像素点所用的时钟频率。TMDS Clock通过clk 引脚传输到接收端,但是接收端并不清楚发送端发过来的TMDS Clock 频率为多少,因此需要通过Phy(PHY是模拟数字转换部分,不同于ADC,PHY是不知道采样频率的,需要自己锁频、锁相,侦测确切的输入频率)来进行锁相得到。但是由于HDMI频宽太宽(480P@60Hz为25.2MHz,1080P@60Hz为162MHz,甚至还有高达340MHz的),一般VCO(压控振荡器,通过电压控制产生的频率)无法覆盖这么大的范围,因此需要分频带来设置Phy:

    先侦测输入频率落在哪个频带,然后根据不同频带做不同设置。

    用TV产生的晶振来数count,数得count后就知道TDMS Clock了

    ??

    或者用1024个TMDS Clock来数晶振个数

    ??

     

    由于视频信号从RGB个8bit通过TMDS编码后变成了10bit,然后又串行化,所以实际用于接收TMDS Data所用的时钟应该为:

    另外ReceiveClock也可以不用直接采用上面的乘法,而是采用TMDSClock为参考、硬件锁相的方法来得到。

    得到ReceiveClock后就可以去设置频率PLL,然后对三个通道进行采样得到TMDS Data。

     

    Timming Detect

    在Sink端还有需要进行Timming Detect,因为如果设备可以支持(如chroma),HDMI可以自由更换Timming,而当Timming更换了之后,Sink需要重新设定Phy。因此,通过侦测频率的改变来检测是否更换了Timing是必要的。一般会有一个中断服务(或循环)线程来侦测频率的改变,一旦频率改变后,该进程会通知重新设定Phy,保证HDMI的正确运行 

      

     

    HDMI版权内容保护之HDCP

    HDCP通过DDC传输

    HDCP主要用于版权视频的保护,举例来说,如果有一台蓝光DVD播放机可以播放blueray DVD,并且该DVD已经获得HDCP授权,你现在想把该DVD影像输出到某台TV,但是该TV没有获得HDCP授权,那么该TV可能就没法播放影像,或者播放质量下降,如出现雪花,图像从1080p变为480p,或者没有声音,都有可能。

    HDCP是靠两个设备的交互进行HDCP授权认证的,认证流程如下

     

    1. Transmitter会发送一个key An(64bit)与Aksv(key selection vector 40bit)给Receiver
    2. Receiver接收到An后,也会发送一个Bkvs以及REPEATER(表明B设备是否为Repeater设备)给Transmitter
    3. Transmitter开始HDCP认证码算法:

      要理解算法,首先我们需要知道ksv是用来干嘛的

      1. 在每个HDMI设备内部,都会保存40组64bit的key,key[40]
      2. 40bit的kvs,每一个bit都是一个索引,当kvs的某一位n为1时,会把key[n]取出来,
      3. 把所有的key[n]相加,得到km,
    4. Receiver也会做HDCP认证码算法这个步骤得到km'
    5. Transmitter与Receiver都会用km\km'去做hdcpBlkCipher,得到一个值R0与R0'
    6. 100ms后Receiver把R0'发送到Transmitter与R0做比较,相等则认为认证完毕。当然km = km'才能保证R0 = R0'。
    7. 此后的每一帧,Transmitter与Receiver都会运行一次hdcpBlockCipher,不过参数为上次生成的Ks与M,生成的新参数为Ks,M,T
    8. 在第128帧的时候,另R = T
    9. 在间隔第一次通信的2s后,再次进行认证
    10. 后续都采用7,8,9这三个步骤进行迭代认证

     

    此外HDMI自1.1后还支持一个更快速与频繁的认证方式,就是上方设备通信图的下半部分

    1. 在每第16的倍数帧,用T与当前帧的Channel0的0像素做异或得到Pj
    2. Channel0的0像素到达Sink后,也与Sink的T‘做异或得到P'j
    3. Sink把P'j发送到Source,与Pj做比较,相同则通过认证

    了解HDCP对于处理HDMI的异常现象很有帮助,比如说如果时而出现雪花,有可能是信号不好导致Channel0的0像素出错,从而第二阶段的认证有时会不成功...

     

    HDMI Sink总流程

     

    1. 提取与分割10bit的TMDS串行数据
    2. 10bit的数据,通过不同线路进来的,判断是那种类型的:DE,Data Island,RGB,Hs,Vs,Ctrl
    3. TMDS解码
    4. HDCP解码,同时Hs,Vs,DE做delay
    5. RGB与DE,Hs,Vs...
    6. BCH解码得到Packet,错误验证
    7. Packet含义解析
    8. 如果是信息,则存到内存
    9. 如果是Audio Data,生成采样频率
    10. Audio输出
    展开全文
  • 而串行口只能用1条线传输一数据,每次传输一个字节的一。并行口由于同时传输更多的信息,速度明显高于串行口,但串行口可以用于比并行口更远距离的数据传输。 1、25针并行口插口的针脚功能:  针脚 功能 针脚...
  • 摄像头引脚定义

    千次阅读 2018-05-11 14:32:29
    摄像头引脚定义 1 NC NO CONNECT 2 AGND Power Analog ground 3 SIO_D I/O SCCB serial interface data I/O 4 AVDD Power Analog power supply (VDD-A= 2.45 to 2.8 VDC) 5...
  • matlab定义数组和相关函数

    万次阅读 2019-11-04 19:44:50
    在matlab对数组的定义较为灵活,因为特殊矩阵较多,所以有许多特定的定义方法。比较常见的有三种: 普通数组定义:用和C语言类似的定义方法,用分号隔开每行数据。 全零数组定义:zeros(x,y),x代表行数,y...
  • 以太网接口rj45引脚定义

    千次阅读 2020-12-23 18:41:24
    支持10兆和100兆自适应的网络连接速度,网卡上以及 Hub 上接口的外观为 8 芯母插座 (RJ45):rg45接口pc端的,网线为 8 芯公插头:rg45接口外观图,,其实在100兆网络实际只应用了4根线来传输数据,另4根是备份的....
  • 数值分析对有效数字的定义

    万次阅读 2018-11-11 18:01:01
    定义: 设数x是数x的近似值,如果x的绝对误差限是它的某一数的半个单位,并且从x左起第一个非零数字到该数共有n,则称这n个数字为x的有效数字,也称用x近似x时具有n有效数字。 看几个例题 (1) (2) (3) ...
  • Java编程如何定义全局常量

    万次阅读 2018-09-12 23:30:43
    Class定义常量方法(推荐方法) //final修饰符 public final class Constants { //私有构造方法 private Constants() {} public static final int ConstantA = 100; public static final int ConstantB = 100...
  • Type-c引脚定义

    千次阅读 2021-01-20 15:55:27
    Type-c口在大家的视野或许比较陌生,但是生活处处离不开Type-c口的存在。手机,电脑,音箱,小家电,无人机…等等,都存在Type-c接口。 Type-c只是一种物理接口的简称,满PIN(24PIN)被赋予了诸多协议,如PD...
  • 0 至 65,535 短整型 short int short 16 -32768至+32767 无符号短整型 unsigned short int unsigned short 16 0 至 65,535 长整型 long int long 32 -2,147,483,648 至 2,147,483,647 无符号长整型 ...
  • 并口定义

    千次阅读 2018-06-27 09:56:31
    一,管脚定义管脚序号管脚定义方向1/STROBE ,选通端,低电平有效 2~9DATA0~7,数据通道0~7 10/ACK,确认,低电平有效 11BUSY,忙 12Paper End,缺纸 13Select,选择 14/Autofeed ,自动换行,低电平有效 15...
  • Jlink 接口定义

    千次阅读 2019-03-14 19:34:00
    JTAG有10pin的、14pin的和20pin的,尽管引脚数和引脚的排列顺序不同,但是其中有一些引脚是一样的,各个引脚的定义如下。 1. 引脚定义 Test Clock Input (TCK) -----强制要求1 TCK在IEEE1149.1标准里是强制要求的...
  • UART通信在工作相当常见,项目需要生成uart信号,在博客记录下。uart是异步通信,因为它只有一根线就可以数据的通信。不像SPI,I2C等同步传输信号。所以串口的传输速度和其它协议的速度相比是比较慢的。下面...
  • VGA针脚定义

    千次阅读 2017-06-13 14:03:15
    vga针脚定义 VGA 15 针母插座 VGA 15 针公插头 VGA 是 Video Graphics Adapter(Array) 的缩写,信号类型为模拟类型。 常用模拟计算机信号接口:VGA接口和RGB接口 VGA接口引脚定义 管脚 定义 1
  • 文章目录涉及到的几个概念地址线与数据线字扩展与扩展 涉及到的几个概念 MDR:数据寄存器,用来存入内存读入/写出的信息。 MAR:地址寄存器,用来存放当前CPU访问的内存单元地址 地址线与数据线 地址线的作用...
  • 9针串口引脚定义

    千次阅读 2018-08-07 22:07:03
    9针串口引脚定义 1. 引脚定义 2. 公头线序 3. 母头线
  • keil C51变量定义位置

    千次阅读 2016-10-01 16:59:29
    不管在主函数还是在自己写的功能函数定义函数内部变量时,必须在函数一开始就定义,不能在函数语句中间定义! 如下:正确定义方式 ...// 主机释放SDA线,为读响应做准备 i2c_set_scl(0);
  • USB、Mini-USB、Micro-USB接口的引脚定义

    万次阅读 2017-11-04 00:43:51
    看到网络上有很多USB、Mini-USB(迷你USB)接口的... 下面介绍标准USB接口的引脚定义,USB是一种常用的PC接口,只有4根线(两根电源,两根信号)。需要注意的是,千万不要把正负极接反了,否则会烧掉USB设备或者电脑主
  • HDMI管脚定义

    万次阅读 2015-11-10 10:17:42
    按照HDMI 1.3a规范,HDMI源端DDC的上拉电阻最小为1.5kΩ,考虑到HDMI认证DDC电平的要求(在 4.5~5.5V之间),将DDC信号均通过10kΩ的电阻上拉到HDMI接口的第18引脚(HDMI源端5V电源)。经计算,源端与接收端的DDC...
  • shell脚本——变量定义

    千次阅读 2021-03-27 01:15:43
    变量的定义变量如何定义变量的定义规则变量名区分大小写变量名不能有特殊符号变量名不能以数字开头等号两边不能有任何空格变量的定义方式基本方式命令执行结果赋值给变量交互式定义变量(read)实例定义有类型的变量...
  • USB3.0接口定义浅析

    万次阅读 2018-12-19 10:41:22
    数码 4-11 357阅读14点赞3评论 ...那么USB的接口定义是怎样的呢?让我来简单分析一下。 因为USB3.0包括USB2.0的引脚,USB3.1和3.0引脚相同,所以本文以USB3.0(即USB3.1 Gen1)为例来讲解。 USB3.1一...
  • 一、9 PIN 串口定义: 1、DCD :载波检测。 主要用于Modem通知计算机其处于在线状态,即Modem检测到拨号音, 处于在 线状态。    2、 RXD:此引脚用于接收外部设备送来的数据 在你使用Modem时,你会发现RXD指示灯在...
  • 屏的接口类型种类以及接口定义分析 https://blog.csdn.net/weixin_43839976/article/details/104487802 RGB接口, MCU接口: Intel8080总线(并口) MCU-LCD屏它与RGB-LCD屏主要区别在于显存的位置: ...
  • 各种接口针脚定义

    万次阅读 2017-06-13 14:01:32
    RJ45接口信号定义,以及网线连接头信号安排 以太网 10/100Base-T 接口: Pin Name Description 1 TX+ Tranceive Data+ (发信号+) 2 TX- Tranceive Data- (发信号-) 3 RX+ Receive Data+ (收信号+) 4 n/c ...
  • 数据可以设置为7、8或者9,奇偶校验可以设置为无(N)、奇(O)或者偶(E),奇偶校验可以使用数据的比特,所以8/E/1就表示一共8数据,其中一用来做奇偶校验。停止可以是1、1.5或者2的(1.5是用在...
  • OBD接口作用和针脚定义图解

    万次阅读 2019-08-06 18:31:46
    OBD接口作用和针脚定义图解 车辆OBD接口,连接车辆ECU行车电脑的接口,检修车辆时把设备解码仪插在此接口,进行扫描车辆是否有故障及故障代码,以后的车联网都是基于此口加以研发的。什么是OBDOBD全称:On Board ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 257,904
精华内容 103,161
关键字:

中位线的定义