数字电视接收器工作原理是怎样的?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数字电视接收器工作原理是怎样的?相关的知识,希望对你有一定的参考价值。
数字电视接收器工作原理是怎样的?跟家里的机顶盒有何区别?能看多少个电视台?有何利弊?
卫星数字电视接收机的工作原理
卫星数字电视接收系统一般由接收天线(包括馈源)、低噪声下变频器(高频头LNB)和卫星数字电视接收机三部分组成:其中天线、高频头称室外单元:卫星数字电视接收机称室内单元,或称综合解码接收机(即
IRD),是当代计算机技术、数字通信技术和微电子技术融合的结晶。
1 IRD的功能框图
IRD的一般功能框图如图1所示。由图可知,一个典型的IRD包括:调谐器、第二中频信号解调、信道解码、MPEG一2传输流解复用、MPEG一2音/视频解码和模拟音/视频信号处理。
2.信道接收模块
c波段或Ku波段的卫星下行信号由犬线接收,经过LNB放大和下变频,形成950~2050 MHz第一中频信号,经电缆送到IRD的调谐器,高频调谐器根据所需接收的频率,通过PLL(锁相环)环路控制本机振荡器频率,把输入信号变频成第二中频(479.5 MHz)信号,送到正交检相器分解出I、Q两路模拟信号,经过A/D转换器再把这两路模拟信号分别转换成6比特的并行数字信号,进入QPSK解调电路和信道纠错电路。
QPSK解调器的核心部分起到载波恢复、寻址、位同步、反混叠、匹配滤波和自动增益控制(AGC)作用。
Butterworth型匹配滤波器用米完成升余弦滚降形状的脉冲形成滤波变换(α=O.35DVB或α=O.20DSS,DVB数字视频广播,DSS数字卫星业务)。
信道纠错部分包括:Viterbi卷积(1/2,2/3,3/4,5/6,6/7 和7/8,K=7)和RS解码(204、188DVB)。Viterbi解码可对误码率(BER)为10^-4~10^-2的数据流进行纠错,以达到RFR为10-4。RS解码主要对突发性片状误码进行纠错,以达到BER优于10^-10的结果,最后输出符合MPEG一2标准的传输流(TS),每个数据包为188个字节。早期的信道接收模块由两片集成电路完成,如国产的xowJ—1型IRD由集成电路STV0190完成双路A/D变换,由集成电路sTV0196完成QPSK解调及前向纠错FEc,目前已将上述两块集成电路功能合成到一块芯片,如:STVD0199,ODM8511等。
3.解复用模块
TS码流是一种多路节目数据包(包含视频、音频和数据信息),按MPEG协议复接而成的数据流。因此,在解码前,要先对Ts流进行解复用,根据所要收视节目的包识别号(PID)提取出相应的视频、音频和数据包,恢复出符合MPEG标准的打包的节目基本流(PES)。
解复用芯片内部集成了32个用户可编程的PID滤波器。其中1个用于视频PID,1个用于音频PID,余下的30个可用于节目特殊信息(PSI)、服务信息(SI)和专用数据的滤波。PID处理分两个步骤:
(1)PID预处理:仅进行PID匹配选择,过滤掉那些PID值不匹配的包,挑出所需收视节目的数据包。
(2)PID后处理:进行传输流(TS)层错误检查(包括包丢失、PID不连续性等),同时滤除传输包的包头和调整段,找出有效载荷,按一定次序连接,组合成F'ES流。
系统时钟为27 MHz,由压控振荡器(VC。XO)产生,通过提取码流中的节目时钟基准(PCR)控制PLL环路,使IRD的系统时钟和输入节目的时钟同步。
芯片内部还嵌有RIsc cPU,它具有很强处理能力,与系统软件一起,能处理IRD复杂的系统任务,如:传输字幕、屏幕显示(OSD)、图文电视、电子节目指导(EPC)等。
DRAM控制器支持16 MB DRAM(动态随机存储器),由CPU、传输和其他功能所共同分享。解复用芯片有CL9110、ST20—TP2等。
4 MPFG一2解码模块
符合CCIR601格式的视频数据流和PCM音频数据流,分别送到视频编码器和音频DAC(数模转换器)按一定电视制式(PAL或NTSC)生成模拟电视信号,供电视机接收。一般PEG一2解码器的结构如图2所示。
目前开发的MPEG-2解码模块将系统解复用模块集成到一起,有时称为单片机,如:ST公司(法国汤姆逊公司)的sTi5500、5505、5512、5518,Hyundai公司的ODM8211,富士通公司的MB87L2250及LSI公司的SC2000等,北京海尔公司也研制了可商品化的MPEG一1解码芯片,命名为“爱国者一号”。
IRD的附加功能模块包括条件接收模块IC卡接口、视/音频输出接口、数据流接口、遥控器和电源等部分。
参考技术A 数字压缩卫星接收机原理简介C波段及Ku波段的卫星信号经天线接收后,送至天线上的高频头, 经放大、变频输出标准的950~2150MHz的信号,输入至机子F输入端,调谐器完成信号再放大、选台,并经变频后送模拟QPSK同步解调,输出I,Q 信号,QPSK解调器完成模拟I,Q信号A/D变换,转换成数
字式I,Q信号,再经数字式QPSK解调,FEC滤波,还原出MPEG2数据流信号。
解码复用器完成MPEG2数据流解包,分解出音、视频同步控制及其他数字信号,MPEG2解码器完成音、视频数字信号的解压缩、解码,还原
出完整的图像及伴音数字信号。
视频数字编码器将数字图像信号编码,编制出模拟电视机所能接收的全电视信号或Y,C信号,音频D/A电路将音频数字信号经数字/模拟变
换器(D/A)输出左、右(L,R)两路模拟音频信号
仅供参考。本回答被提问者采纳
以太坊虚拟机EVM的工作原理是怎样的
以太坊虚拟机EVM的工作原理是怎样的
如果你打算尝试在以太坊区块链上开发智能合约,或者已经在该领域工作了一段时间,可能会遇到EVM
一词,EMV是太坊虚拟机的缩写。 虚拟机本质上是在执行代码和执行的机器之间创建一个抽象级别。需要这一层抽象来提高软件的可移植性,以及确保应用程序彼此分离,并与运行它们的主机分离。
创建智能合约
智能合约通常用一种名为Solidity
的编程语言编写,这种语言类似于 JavaScript 和 C++。 其他编写智能合约的语言包括 Vyper 和 Bamboo。 在 Solidity 发布之前,使用了其他语言,如 Serpent(已弃用)和 Mutan(已弃用)。
像 Solidity 这样的智能合约语言不能由 EVM 直接执行。 相反,它们需要被编译为低级别的指令(称为操作码)。
操作码
在底层,EVM 使用一组指令(称为操作码)来执行特定任务。 在撰写本文时,有 140 个唯一操作码。 这些操作码一起使 EVM 成为图灵完备的环境。 这意味着在有足够资源的情况下,EVM 能够(几乎)计算任何东西。 因为操作码是 1 个字节,所以最多只能有 256 (16²) 个操作码。 简单起见,我们可以将所有操作码分为以下几类:
- 堆栈操作操作码(POP、PUSH、DUP、SWAP)
- 算术/比较/按位操作码(ADD、SUB、GT、LT、AND、OR)
- 环境操作码(CALLER、CALLVALUE、NUMBER)
- 内存操作操作码(MLOAD、MSTORE、MSTORE8、MSIZE)
- 存储操作操作码(SLOAD、SSTORE)
- 程序计数器相关操作码(JUMP、JUMPI、PC、JUMPDEST)
- 停止操作码(STOP、RETURN、REVERT、INVALID、SELFDESTRUCT)
字节码
为了有效地存储操作码,它们被编码为字节码。 每个操作码都分配有一个字节(例如;STOP 是 0x00)。 我们来看看下面的字节码:0x6001600101
在执行过程中,字节码被分成它的字节(1 个字节等于 2 个十六进制字符)。 0x60–0x7f (PUSH1-PUSH32) 范围内的字节处理方式不同,因为它们包含推送数据(需要附加到操作码,而不是被视为单独的操作码)。
第一条指令是 0x60,它转换为 PUSH1。 因此,我们知道推送数据是 1 个字节长,我们将下一个字节添加到堆栈中。 堆栈现在包含 1 个项,我们可以移动到下一条指令。 由于我们知道 0x01 是 PUSH 指令的一部分,因此我们需要执行的下一条指令是另一个 0x60 (PUSH1) 以及相同的数据。 堆栈现在包含 2 个相同的项。 最后一条指令是 0x01,翻译为 ADD。 该指令将从堆栈中取出 2 个项,并将这些项目的总和压入堆栈。 堆栈现在包含一项:0x02
合约状态
虽然许多流行的顶级编程语言允许用户直接将参数传递给函数(function(argument1,argument2)),但低级编程语言通常使用堆栈将值传递给函数。 EVM 使用 256 位寄存器堆栈,可以一次访问或操作最近的 16 项。总共,堆栈只能容纳 1024 个项。
由于这些限制,复杂的操作码改为使用合约内存来检索或传递数据。然而,记忆不是持久的。合约执行完成后,内存内容不会被保存。可以将堆栈类比为函数参数,将内存类比为声明变量。
为了无限期地存储数据并使其可用于未来的合约执行,可以使用存储。合约存储本质上充当公共数据库,可以从外部读取值,而无需向合约发送交易(不收费!)。但是,与写入内存相比,写入存储非常昂贵(高达 6000 倍成本)。
于合约交互的成本(gas fee)
由于所有合约的执行都是由运行以太坊节点的个人运行的,攻击者可以尝试创建包含大量计算成本高的操作的合约来减慢网络速度。 为了防止此类攻击的发生,每个操作码都有自己的基本 gas 成本。 此外,一些复杂的操作码也会收取动态 gas 成本。 例如,操作码 KECCAK256(以前称为 SHA3)的基本成本为 30 gas,每个字的动态成本为 6 gas(字是 256 位项目)。 计算成本高的指令比简单、直接的指令收取更高的 gas 费用。 最重要的是,每笔交易都以 21000 gas 开始。
当执行减少状态大小的指令时,gas 也可以退还。 将存储值从非零设置为零会退还 15000 gas,而完全删除合约(使用 SELFDESTRUCT 操作码)会退还 24000 gas。 退款仅在合同执行完成后才会发生,因此合同无法自行支付。 此外,退款不能超过当前合同调用所用 gas 的一半。
如果有兴趣阅读更多有关gas的信息,请随时查看这篇出色的文章:“什么是gas?”
https://support.mycrypto.com/general-knowledge/ethereum-blockchain/what-is-gas/
部署智能合约
部署智能合约时,会创建一个常规交易,没有地址。 此外,添加了一些字节码作为输入数据。 此字节码充当构造函数,需要在将运行时字节码复制到合约代码之前将初始变量写入存储。 在部署期间,创建字节码只会运行一次,而运行时字节码将在每次合约调用时运行。
我们可以把上面的字节码分为三个部分
构造器
60806040526001600055348015601457600080fd5b5060358060226000396000f3fe
运行时
6080604052600080fdfe
元数据
a165627a7a723058204e048d6cab20eb0d9f95671510277b55a61a582250e04db7f6587a1bebc134d20029
在这个字节码的末尾,附加了一个由 Solidity 创建的元数据文件的 Swarm 散列。 Swarm 是一个分布式存储平台和内容分发服务,或者更简单地说:一个去中心化的文件存储。 尽管 Swarm 哈希也将包含在运行时字节码中,但它永远不会被 EVM 解释为操作码,因为它的位置永远无法到达。 目前,Solidity 使用以下格式:
0xa1 0x65 'b' 'z' 'z' 'r' '0' 0x58 0x20 [32 bytes swarm hash] 0x00 0x29
因此,在这种情况下,我们可以提取以下 Swarm 哈希:
4e048d6cab20eb0d9f95671510277b55a61a582250e04db7f6587a1bebc134d2
元数据文件包含有关合约的各种信息,例如编译器版本或合约的功能。 不幸的是,这是一个实验性功能,没有多少合约公开将其元数据上传到 Swarm 网络。
反编译字节码
有几个项目已经创建了工具来尝试使字节码更具可读性。 例如你可以使用 eveem.org 或 ethervm.io 在主网上反编译合约。 不过,由于编译器进行了优化,原始合约源的某些部分(例如函数名称或事件名称)总是丢失。 尽管如此,大多数函数名称仍然可以通过将函数签名与包含流行函数和事件名称的大型数据集进行比较来强制执行(参见 4byte.directory)。
合约调用通常需要“ABI”(应用程序二进制接口),它是记录所有功能和事件的数据,包括它们所需的输入和输出。 在合约上调用函数时,函数签名是通过对函数名称(包括其输入)进行哈希处理(使用 keccak256)并截断除前 4 个字节之外的所有内容来确定的。
如上图所示,我们的函数 HelloWorld() 解析为签名哈希 0x7fffb7bd。 如果我们想调用这个函数,我们的交易数据需要以 0x7fffb7bd 开头。 需要传递给函数的参数(在这种情况下没有)可以在交易输入数据中的签名哈希之后添加到称为单词的 32 字节片段中。
如果一个参数包含超过 32 个字节(256 位)的数据,如数组或字符串,则该参数将拆分为多个字,这些字会在包含所有其他参数后添加到输入数据中。 此外,所有单词的总大小作为另一个单词包含在所有数组单词之前。 在包含参数的位置,将添加数组单词(包括大小单词)的起始位置。
总结
以太坊为开发人员提供了一个去中心化的生态系统,可以使用 Solidity 和 EVM 构建出色的产品。 尽管通过智能合约与 EVM 交互可能比在传统服务器上运行程序要昂贵得多,但在许多用例中,去中心化更受大家的关注。
如果阅读本文使您有兴趣了解有关开发智能合约的更多信息,请通过查看“智能合约简介”来深入了解 Solidity 的工作原理。 谢谢阅读!
引用
- https://ethereum.github.io/yellowpaper/paper.pdf
- https://docs.soliditylang.org/en/latest/
- https://blog.zeppelin.solutions/deconstructing-a-solidity-contract-part-i-introduction-832efd2d7737
- https://blog.qtum.org/diving-into-the-ethereum-vm-6e8d5d2f3c30
本篇翻译自下面这篇文章
https://medium.com/mycrypto/the-ethereum-virtual-machine-how-does-it-work-9abac2b7c9e
以上是关于数字电视接收器工作原理是怎样的?的主要内容,如果未能解决你的问题,请参考以下文章