dts 和 dtsi文件的区别

发表于: 17:47:54 |
分类:Linux Kernel的DTS
A node has 2 names. The actual node name is generally contained in a property of type &name& in the node property list whose value is a zero terminated string and is mandatory for version 1 to 3 of the format definition (as it is in Open Firmware). Version 16 makes it optional as it can generate it from the unit name defined below.&&&&&&& ***********************************************&&&&&&& 练习题:观察一颗device-tree,看看它有什么特点?&&
发表于: 17:45:38 |
分类:Linux Kernel的DTS
以下是摘抄的Linux内核的Documentation的内容,一边学一边做笔记。所以以下内容可直接忽略,看源代码更方便~linux-3.16.1/Documentation/devicetree/booting-without-of.txt==========================================I) - Introduction========================1)Entry point for arch/arm---------------------------a) ATAGS interface.b) Entry with a flattened device-tree block. Firmware loads the physical address of the flattened device tree block (dtb) into r2, r1 is not used, but it is considered good practice to use a valid machine number as described in Documenta
发表于: 13:36:19 |
分类:Linux Kernel的DTS
1.修改model和compitable值:&&& model = &TI AM335x maria_am335x&;&&& compatible = &ti,maria_am335x&, &ti,am33xx&;无需修改的代码:&&& cpu@0 { &&&&&&&&&&& cpu0-supply = &&dcdc2_reg&;&&& };cpu@0的cpu0-supply项,原值为dcdc2_reg,不用更改,因为在OK335xD中就是用TPS65217的dcdc2通道来给core部分供电。如果你设计的电路使用dcdc1或其它通道,就修改成相应的值。====================================2.修改memory的值:&&& memory {&
发表于: 11:52:36 |
分类:Linux Kernel的DTS
了解基本的dts知识之后,就可以为编写自己的dts文件了。Forlinx的OK335xD核心板和底板包含的资源有NANDFLASH、SDRAM、MMC、LCD、UART、USB、ETHERNET等等,因此dts文件必须要提供对它们正确的描述。第一步,复制相近硬件的dts文件:am335x-bone.dts -& maria_am335x.dtsam335x-bone-common.dtsi -& maria_am335x-common.dtsi相比较于从头重新编写所有内容,在相近硬件的基础上修改会简单得多。am335x-bone开发板使用了TPS65217作为PMIC芯片,因此在它的基础上进行修改。第二步,修改第一个文件maria_am335x.dts的内容:#include &am335x-bone-common.dtsi& 改为#include &maria_am335x-common.dtsi&&&&&&&&&&&&&&&&&&&&&
发表于: 11:13:25 |
分类:Linux Kernel的DTS
http://events.linuxfoundation.org/sites/events/files/slides/petazzoni-device-tree-dummies.pdf=============================================问题一:以前的Linux Kernel如何描述硬件,现在又如何描述呢?在以前的内核版本中:1)内核包含了对硬件的全部描述;2)bootloader会加载一个二进制的内核镜像,并执行它,比如uImage或者zImage;3)bootloader会提供一些额外的信息,成为ATAGS,它的地址会通过r2寄存器传给内核;&&& ATAGS包含了内存大小和地址,kernel command line等等;4)bootloader会告诉内核加载哪一款board,通过r1寄存器存放的machine type integer;5)U-Boot的内核启动命令:bootm &kernel img addr&6)Barebox变量:bootm.image (?)现今的内核版本使用了Device Tree:1)内核不再包
与非门科技(北京)有限公司 All Rights Reserved.
京ICP证:070212号
北京市公安局备案编号: 京ICP备:号&此篇源文件arch/arm/boot/dts/imx6sx.dtsi
1. dts和dtsi完成的功能
以下是两段较为常见的dtsi和dts代码
1 uart5: serial@021f4000 {
compatible = "fsl,imx6sx-uart",
"fsl,imx6q-uart", "fsl,imx21-uart";
reg = &0x021f4000 0x4000&;
interrupts = &GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH&;
clocks = &&clks IMX6SX_CLK_UART_IPG&,
&&clks IMX6SX_CLK_UART_SERIAL&;
clock-names = "ipg", "per";
dmas = &&sdma 33 4 0&, &&sdma 34 4 0&;
dma-names = "rx", "tx";
status = "disabled";
以上这段代码更多出现在*.dtsi中
一般会在*.dtsi中将芯片的外设接口资源都做定义,
如uart5作为该外设的label,node-name@unit-address作为设备的名称,node-name只是设备类型,uart1/uart2/uart3等可以都是serial名称,而@后面则跟着设备寄存器起始地址。
compatible默认属性,
reg寄存器地址和长度,该uart5节点的父节点为aips2,在父节点中指明#address-cells = &1&;#size-cells = &1&;这决定了子节点字段长度address为1, length为1. 所以reg格式为reg = &0x021f0&;
interrupts对应的中断号和中断出发方式,uart5的父节点为aips2,而aips2的父节点为soc,soc节点定义了interrupt-parent = &&intc&;给出了节点所依附的中断控制器,如果节点没有指定interrupt-parent,那么就从父节点继承,所以该uart5节点继承了soc的中断控制器,即intc. 而intc节点的#interrupt-cells = &3&;所以就有了该节点中interrupts = &GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH&;三个字段,具体这三个字段的含义可以参考芯片文档的描述。其中GIC_SPI定义在include/dt-bindings/interrupt-controller/arm-gic.h值为0,  
clock外设时钟,在include/dt-bindings/clock/imx6sx-clock.h,指定设备工作时钟
status一般会设为disabled。
1 &uart5 {
pinctrl-names = "default";
pinctrl-0 = &&pinctrl_uart5&;
fsl,uart-has-
status = "okay";
以上这段代码更多出现在*.dts中
在*.dts中如果想对该设备进行操作,需要进行override,至少status需要从disabled设置为okay, 当然也有可能需要对compatible属性进行重写(为了和自己的driver匹配),另外需要使用&label首先引用该设备,使用pinctrl-names和pinctrl-0进行引脚的配置,当然这里可能出现多组引脚的配置,如下代码:
1 &usdhc3 {
pinctrl-names = "default", "state_100mhz", "state_200mhz";
pinctrl-0 = &&pinctrl_usdhc3&;
pinctrl-1 = &&pinctrl_usdhc3_100mhz&;
pinctrl-2 = &&pinctrl_usdhc3_200mhz&;
bus-width = &8&;
cd-gpios = &&gpio2 10 GPIO_ACTIVE_HIGH&;
wp-gpios = &&gpio2 15 GPIO_ACTIVE_HIGH&;
keep-power-in-
enable-sdio-
vmmc-supply = &&vcc_sd3&;
status = "okay";
而这里面的pinctrl-0对应的pinctrl_usdhc3内容如下:
1 pinctrl_usdhc3: usdhc3grp {
fsl,pins = &
MX6SX_PAD_SD3_CMD__USDHC3_CMD
MX6SX_PAD_SD3_CLK__USDHC3_CLK
MX6SX_PAD_SD3_DATA0__USDHC3_DATA0
MX6SX_PAD_SD3_DATA1__USDHC3_DATA1
MX6SX_PAD_SD3_DATA2__USDHC3_DATA2
MX6SX_PAD_SD3_DATA3__USDHC3_DATA3
MX6SX_PAD_SD3_DATA4__USDHC3_DATA4
MX6SX_PAD_SD3_DATA5__USDHC3_DATA5
MX6SX_PAD_SD3_DATA6__USDHC3_DATA6
MX6SX_PAD_SD3_DATA7__USDHC3_DATA7
MX6SX_PAD_KEY_COL0__GPIO2_IO_10
0x17059 /* CD */
MX6SX_PAD_KEY_ROW0__GPIO2_IO_15
0x17059 /* WP */
&这种pinctrl的设置可参照/Documentation/devicetree/bindinsg/pinctrl下示例代码
2. 通常会碰到的实际问题
到此,问题出现了:
1. 当写一个按键驱动,应该如何在*.dts或者*.dtsi中操作?
2. 当在串口driver中需要使用到某个pin脚作为普通输出IO,该如何操作?
3. 当在串口driver中需要使用某个muxpin脚作为ADC或者其他服用功能该如何操作?
4. 当在串口driver中有可能想使能某个功能而不想写定在driver代码中,该如何操作?
5. 当想向driver中传入一个常数如做delay延时操作等等,该如何操作?
1. 当写一个按键驱动,应该如何在*.dts或者*.dtsi中操作?
1 gpio-keys {
compatible = "gpio-keys";
pinctrl-names = "default";
pinctrl-0 = &&pinctrl_gpio_keys&;
volume-up {
label = "Volume Up";
gpios = &&gpio1 18 GPIO_ACTIVE_LOW&;
linux,code = &KEY_VOLUMEUP&;
volume-down {
label = "Volume Down";
gpios = &&gpio1 19 GPIO_ACTIVE_LOW&;
linux,code = &KEY_VOLUMEDOWN&;
1 pinctrl_gpio_keys: gpio_keysgrp {
fsl,pins = &
MX6SX_PAD_CSI_DATA04__GPIO1_IO_18 0x17059
MX6SX_PAD_CSI_DATA05__GPIO1_IO_19 0x17059
2. 当在串口driver中需要使用到某个pin脚作为普通输出IO,该如何操作?
1 sii902x_reset: sii902x-reset {
compatible = "gpio-reset";
reset-gpios = &&gpio3 27 1&;
reset-delay-us = &100000&;
#reset-cells = &0&;
status = "disabled";
最简单的不需要pinctrl来进行pin脚的设置,为什么???
3. 当在串口driver中需要使用某个muxpin脚作为ADC或者其他服用功能该如何操作?
这个问题其实上面有提到,就像上述的多个pin-names和多个pinctrl在后面的pinctrl中配置这个复用的管脚即可。
4. 当在串口driver中有可能想使能某个功能而不想写定在driver代码中,该如何操作?
1 &uart5 {
pinctrl-names = "default";
pinctrl-0 = &&pinctrl_uart5&;
fsl,uart-has-
status = "okay";
只需要在driver中使用of函数读取此属性,如果有此字段,可以使能某些操作;如果没有就失能某些操作。
5. 当想向driver中传入一个常数如做delay延时操作等等,该如何操作?
1 &usdhc3 {
pinctrl-names = "default", "state_100mhz", "state_200mhz";
pinctrl-0 = &&pinctrl_usdhc3&;
pinctrl-1 = &&pinctrl_usdhc3_100mhz&;
pinctrl-2 = &&pinctrl_usdhc3_200mhz&;
bus-width = &8&;
cd-gpios = &&gpio2 10 GPIO_ACTIVE_HIGH&;
wp-gpios = &&gpio2 15 GPIO_ACTIVE_HIGH&;
keep-power-in-
enable-sdio-
vmmc-supply = &&vcc_sd3&;
status = "okay";
只需要在driver中读取bus-width字段的值,即可获取到8这个常量,注意在devicetree中命名字段更多使用"-"而非下划线"_".
阅读(...) 评论()1.&& &ARM Device Tree起源
Linus Torvalds在日的ARM Linux邮件列表宣称“this whole ARM thing is a f*cking pain in the ass”,引发ARM Linux社区的地震,随后ARM社区进行了一系列的重大修正。在过去的ARM Linux中,arch/arm/plat-xxx和arch/arm/mach-xxx中充斥着大量的垃圾代码,相当多数的代码只是在描述板级细节,而这些板级细节对于内核来讲,不过是垃圾,如板上的platform设备、resource、i2c_board_info、spi_board_info以及各种硬件的platform_data。读者有兴趣可以统计下常见的s3c2410、s3c6410等板级目录,代码量在数万行。
社区必须改变这种局面,于是PowerPC等其他体系架构下已经使用的Flattened Device Tree(FDT)进入ARM社区的视野。Device Tree是一种描述硬件的数据结构,它起源于 OpenFirmware (OF)。在Linux 2.6中,ARM架构的板极硬件细节过多地被硬编码在arch/arm/plat-xxx和arch/arm/mach-xxx,采用Device
Tree后,许多硬件的细节可以直接透过它传递给Linux,而不再需要在kernel中进行大量的冗余编码。
Device Tree由一系列被命名的结点(node)和属性(property)组成,而结点本身可包含子结点。所谓属性,其实就是成对出现的name和value。在Device Tree中,可描述的信息包括(原先这些信息大多被hard code到kernel中):
CPU的数量和类别内存基地址和大小总线和桥外设连接中断控制器和中断使用情况GPIO控制器和GPIO使用情况Clock控制器和Clock使用情况
它基本上就是画一棵电路板上CPU、总线、设备组成的树,Bootloader会将这棵树传递给内核,然后内核可以识别这棵树,并根据它展开出Linux内核中的platform_device、i2c_client、spi_device等设备,而这些设备用到的内存、IRQ等资源,也被传递给了内核,内核会将这些资源绑定给展开的相应的设备。
2.&& &Device Tree组成和结构
整个Device Tree牵涉面比较广,即增加了新的用于描述设备硬件信息的文本格式,又增加了编译这一文本的工具,同时Bootloader也需要支持将编译后的Device Tree传递给Linux内核。
DTS (device tree source)
.dts文件是一种ASCII 文本格式的Device Tree描述,此文本格式非常人性化,适合人类的阅读习惯。基本上,在ARM Linux在,一个.dts文件对应一个ARM的machine,一般放置在内核的arch/arm/boot/dts/目录。由于一个SoC可能对应多个machine(一个SoC可以对应多个产品和电路板),势必这些.dts文件需包含许多共同的部分,Linux内核为了简化,把SoC公用的部分或者多个machine共同的部分一般提炼为.dtsi,类似于C语言的头文件。其他的machine对应的.dts就include这个.dtsi。譬如,对于VEXPRESS而言,vexpress-v2m.dtsi就被vexpress-v2p-ca9.dts所引用,
vexpress-v2p-ca9.dts有如下一行:
/include/ &vexpress-v2m.dtsi&
当然,和C语言的头文件类似,.dtsi也可以include其他的.dtsi,譬如几乎所有的ARM SoC的.dtsi都引用了skeleton.dtsi。
.dts(或者其include的.dtsi)基本元素即为前文所述的结点和属性:
上述.dts文件并没有什么真实的用途,但它基本表征了一个Device Tree源文件的结构:
1个root结点&/&;
root结点下面含一系列子结点,本例中为&node1& 和 &node2&;
结点&node1&下又含有一系列子结点,本例中为&child-node1& 和 &child-node2&;
各结点都有一系列属性。这些属性可能为空,如& an-empty-property&;可能为字符串,如&a-string-property&;可能为字符串数组,如&a-string-list-property&;可能为Cells(由u32整数组成),如&second-child-property&,可能为二进制数,如&a-byte-data-property&。
下面以一个最简单的machine为例来看如何写一个.dts文件。假设此machine的配置如下:
1个双核ARM Cortex-A9 32位处理器;
ARM的local bus上的内存映射区域分布了2个串口(分别位于0x101F1000 和 0x101F2000)、GPIO控制器(位于0x101F3000)、SPI控制器(位于0x)、中断控制器(位于0x)和一个external bus桥;
External bus桥上又连接了SMC SMC91111 Ethernet(位于0x)、I2C控制器(位于0x)、64MB NOR Flash(位于0x);
External bus桥上连接的I2C控制器所对应的I2C总线上又连接了Maxim DS1338实时钟(I2C地址为0x58)。
其对应的.dts文件为:
上述.dts文件中,root结点&/&的compatible 属性compatible = &acme,coyotes-revenge&;定义了系统的名称,它的组织形式为:&manufacturer&,&model&。Linux内核透过root结点&/&的compatible 属性即可判断它启动的是什么machine。
在.dts文件的每个设备,都有一个compatible 属性,compatible属性用户驱动和设备的绑定。compatible 属性是一个字符串的列表,列表中的第一个字符串表征了结点代表的确切设备,形式为&&manufacturer&,&model&&,其后的字符串表征可兼容的其他设备。可以说前面的是特指,后面的则涵盖更广的范围。如在arch/arm/boot/dts/vexpress-v2m.dtsi中的Flash结点:
compatible属性的第2个字符串&cfi-flash&明显比第1个字符串&arm,vexpress-flash&涵盖的范围更广。
再比如,Freescale MPC8349 SoC含一个串口设备,它实现了国家半导体(National Semiconductor)的ns16550 寄存器接口。则MPC8349串口设备的compatible属性为compatible = &fsl,mpc8349-uart&, &ns16550&。其中,fsl,mpc8349-uart指代了确切的设备, ns16550代表该设备与National
Semiconductor 的16550 UART保持了寄存器兼容。
接下来root结点&/&的cpus子结点下面又包含2个cpu子结点,描述了此machine上的2个CPU,并且二者的compatible 属性为&arm,cortex-a9&。
注意cpus和cpus的2个cpu子结点的命名,它们遵循的组织形式为:&name&[@&unit-address&],&&中的内容是必选项,[]中的则为可选项。name是一个ASCII字符串,用于描述结点对应的设备类型,如3com Ethernet适配器对应的结点name宜为ethernet,而不是3com509。如果一个结点描述的设备有地址,则应该给出@unit-address。多个相同类型设备结点的name可以一样,只要unit-address不同即可,如本例中含有cpu@0、cpu@1以及serial@101f0000与serial@101f2000这样的同名结点。设备的unit-address地址也经常在其对应结点的reg属性中给出。ePAPR标准给出了结点命名的规范。
可寻址的设备使用如下信息来在Device Tree中编码地址信息:
&&& reg&&& #address-cells&&& #size-cells
其中reg的组织形式为reg = &address1 length1 [address2 length2] [address3 length3] ... &,其中的每一组address length表明了设备使用的一个地址范围。address为1个或多个32位的整型(即cell),而length则为cell的列表或者为空(若#size-cells = 0)。address 和 length
字段是可变长的,父结点的#address-cells和#size-cells分别决定了子结点的reg属性的address和length字段的长度。在本例中,root结点的#address-cells = &1&;和#size-cells = &1&;决定了serial、gpio、spi等结点的address和length字段的长度分别为1。cpus 结点的#address-cells = &1&;和#size-cells = &0&;决定了2个cpu子结点的address为1,而length为空,于是形成了2个cpu的reg
= &0&;和reg = &1&;。external-bus结点的#address-cells = &2&和#size-cells = &1&;决定了其下的ethernet、i2c、flash的reg字段形如reg = &0 0 0x1000&;、reg = &1 0 0x1000&;和reg = &2 0 0x4000000&;。其中,address字段长度为0,开始的第一个cell(0、1、2)是对应的片选,第2个cell(0,0,0)是相对该片选的基地址,第3个cell(0x0、0x4000000)为length。特别要留意的是i2c结点中定义的
#address-cells = &1&;和#size-cells = &0&;又作用到了I2C总线上连接的RTC,它的address字段为0x58,是设备的I2C地址。
root结点的子结点描述的是CPU的视图,因此root子结点的address区域就直接位于CPU的memory区域。但是,经过总线桥后的address往往需要经过转换才能对应的CPU的memory映射。external-bus的ranges属性定义了经过external-bus桥后的地址范围如何映射到CPU的memory区域。
ranges是地址转换表,其中的每个项目是一个子地址、父地址以及在子地址空间的大小的映射。映射表中的子地址、父地址分别采用子地址空间的#address-cells和父地址空间的#address-cells大小。对于本例而言,子地址空间的#address-cells为2,父地址空间的#address-cells值为1,因此0 0& 0x&& 0x10000的前2个cell为external-bus后片选0上偏移0,第3个cell表示external-bus后片选0上偏移0的地址空间被映射到CPU的0x位置,第4个cell表示映射的大小为0x10000。ranges的后面2个项目的含义可以类推。
Device Tree中还可以中断连接信息,对于中断控制器而言,它提供如下属性:
interrupt-controller – 这个属性为空,中断控制器应该加上此属性表明自己的身份;
#interrupt-cells – 与#address-cells 和 #size-cells相似,它表明连接此中断控制器的设备的interrupts属性的cell大小。
在整个Device Tree中,与中断相关的属性还包括:
interrupt-parent – 设备结点透过它来指定它所依附的中断控制器的phandle,当结点没有指定interrupt-parent 时,则从父级结点继承。对于本例而言,root结点指定了interrupt-parent = &&intc&;其对应于intc: interrupt-controller@,而root结点的子结点并未指定interrupt-parent,因此它们都继承了intc,即位于0x的中断控制器。
interrupts – 用到了中断的设备结点透过它指定中断号、触发方法等,具体这个属性含有多少个cell,由它依附的中断控制器结点的#interrupt-cells属性决定。而具体每个cell又是什么含义,一般由驱动的实现决定,而且也会在Device Tree的binding文档中说明。譬如,对于ARM GIC中断控制器而言,#interrupt-cells为3,它3个cell的具体含义Documentation/devicetree/bindings/arm/gic.txt就有如下文字说明:
另外,值得注意的是,一个设备还可能用到多个中断号。对于ARM GIC而言,若某设备使用了SPI的168、169号2个中断,而言都是高电平触发,则该设备结点的interrupts属性可定义为:interrupts = &0 168 4&, &0 169 4&;
除了中断以外,在ARM Linux中clock、GPIO、pinmux都可以透过.dts中的结点和属性进行描述。
本文已收录于以下专栏:
相关文章推荐
1、ARM Device Tree起源
Linus Torvalds在日的ARM Linux邮件列表宣称“this whole ARM thing is a f*cking p...
本系列导航:
Linux DTS(Device Tree Source)设备树详解之一
Linux DTS(Device Tree Source)设备树详解之二
在前两篇中我们了解了DTS...
一.什么是DTS?为什么要引入DTS?
DTS即Device Tree Source 设备树源码, Device Tree是一种描述硬件的数据结构,它起源于 OpenFirmware (OF)。
有上一篇文章,我们了解了dts的背景知识和相关基础,这次我们对应实际设备进行一下相关分析。
DTS设备树的匹配过程
一个dts文件确定一个项目,多个项目可以包含同一个dtsi文件。找到该项目对应的...
一、前提新版基于ARM的Linux都会基于Device Tree去代替之前的device驱动。更加多的了解Device Tree可以访问宝哥的Bolg:ARM Linux 3.x的设备树(Device...
转自蜗窝科技,www.wowotech.net。
作为一个多年耕耘在linux 2.6.23内核的开发者,各个不同项目中各种不同周边外设驱动的开发以及各种琐碎的、扯皮的俗务占据了大部分的时间。当有机会下载3.14的内核并准备学习的时候...
作为一个多年耕耘在linux 2.6.23内核的开发者,各个不同项目中各种不同周边外设驱动的开发以及各种琐碎的、扯皮的俗务占据了大部分的时间。当有机会下载3.14的内核并准备学习的时候,突...
在Linux DeviceTree添加dtsi文件并在驱动中读取节点信息写入sys文件系统
新版基于ARM的Linux都会基于Device Tree去代替之前的device驱动。...
他的最新文章
讲师:刘文志
讲师:陈伟
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)您的位置:资讯中心 &&
高清电影的音频AC3和DTS什么?有什么区别?
 次 
什么是AC-3
&&& 1994年,日本先锋公司宣布与美国杜比实验室合作研制成功一种崭新的环绕声制式,并命名为“杜比AC-3”(Dolby Surround Audio Coding-3)。1997年初,杜比实验室正式将“杜比AC-3环绕声”改为“杜比数码环绕声”(Dolby Surround Digital),我们常称为Dolby Digital。
&&& 杜比AC-3提供的环绕声系统由5个全频域声道和1个超低音声道组成,被称为5.1声道。5个声道包括左前、中央、右前、左后、右后。低音声道主要提供一些额外的低音信息,使一些场景,如爆炸、撞击等声音效果更好。除了超重低音部分外,其余皆是全频段Stereo声道,48KHz,16bit,且现场拍摄时每个声道皆是独立麦克风来录制,所以AC-3的后环绕声道拥有完整的定位能力。
&&& AC-3发展当初是为了应用在电影院上的,AC-3音效因为胶卷的空间实在有限,所以AC-3音效的数据是存放在胶卷上,齿孔与齿孔的中间,这部分的空 间实在太小了,所以杜比的工程师只好将他们认为人耳听不到的地方加以删除,藉以节省空间,这种破坏性的压缩还是会造成失真的,但是为了迁就原有器材上的限 制,这也是逼不得已的做法。
&&& AC-3数据的流量,两声道是192Kbps,大约是未压缩数据的8分之 一大小,5.1声道的流量是384Kbps~448Kbps,最高可提升到640Kbps,越大的数据流量代表越小的压缩比例,音质相对的会更好,可听到 的细节也会多,但Dolby AC-3将S/N比控制的很好,所以影响的重点就是可听到的细节多寡与否了。
&&& Digital Theatre System 的缩写,即数码影院系统。它是1996年底推出的一种源自剧院模式开发的数码环绕声系统。DTS系统不仅具有 AC-3 相似功能,更加强了其纵深定位交叉效果。DTS 芯片容量为 1536kbps,压缩传输比为 4:1;而 AC-3 芯片容量为448kbps,压缩比为 10:1。正是由于DTS 信息容量的增加,音色更加优美,不但可以聆听Hi-Fi 音乐,同时也可以欣赏爆棚影视软件。
&&& 由于DTS 以 20bit 在 48kHz 的频率中工作,提供 6 声道信息,它所创造出的音域环绕声效果,能满足众多A.V 发烧友最挑剔的要求。听音者完全被这种气势所包围,真正体验360 度数码环绕音响效果。  
&&& DTS 和杜比数字在音质上有着明显的不同,前者声音力度强劲,声音的上升和切入都很尖锐,音场的透明感清晰可闻,尤其是丰富的低音效果表现得更加激烈火爆。后者在低音方面缺少丰富的力度,声音的上升和切入就显得有些暧昧。也就是说DTS 在某些细节和分辨力方面比AC-3还略胜一筹。它的另一个特点是能重放发烧友追求的HDCD,这就意味着DTS的声音表现能显著地超越目前任何最好的CD 录音。目前市面上已经有不少DTS格式的CD出品了。
&&& 从技术上讲,DTS与包括Dolby Digital在内的其它声音处理系统是完全不同的。Dolby Digital是将音效数据存储在电影胶片的齿孔之间,因为空间的限制而必须采用大量的压缩的模式,这样就不得不牺牲部分音质。DTS公司用一种简单的办 法解决了这个问题,即把音效数据存储到另外的CD-ROM中,使其与影像数据同步。这样不但空间得到增加,而且数据流量也可以相对变大,更可以将存储音效数据的CD更换,来播放不同的语言版本。
精选全球发烧级 WAV无损音乐 一网打尽 --音质≈原版CD碟! 和同步更新!}

我要回帖

更多关于 dts和dtsi 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信