Data Bus Inversion(DBI):数据总线翻转 数据总线翻转功能的优势: 只支持X8跟X16的颗粒,X4颗粒不支持; 配置是按照每字节设置的(X8颗粒上有一个DBI_n脚,X16颗粒上有UDBI_n , LDBI_n两个脚); 与DM跟TDQS脚复用,当DM功能被使能时候,写操作的DBI不能被使能; 翻转是数据的位; 更少的位会被拉低(算上DBI_n脚,最大被拉低的位位数为位数的一半); 消耗更低的能量 (能量只会在位数被拉低时候损耗); 因为更少的位在切换,会获得更低的噪声跟更好的数据眼图; 举例: 读 写 如果一个字节通道里面有四位以上是低的:翻转此字节通道;拉低DBI_n脚 如果DBI_n是低的: 翻转数据后才能写入 如果一个字节通道里面只有四位或以下是低的:不翻转此字节通道;拉高DBI_n脚 如果DBI_n是高的:数据不需要翻转即可写入 读与写操作能被单独启动DBI(MR5(模式寄存器5)控制 ) 总结: 通过以上的DBI介绍,其实DBI主要是对硬件有较大的优化,功耗跟信号完整性都有,不过主要还是信号完整性。
/usr/bin/perl -w use strict; use DBI; my $dbh = DBI->connect("DBI:mysql:test:192.168.1.2 1.1 连接数据库 my $dbh = DBI->connect("DBI:mysql:test:192.168.1.2", 'root', 'password'); 调用DBI的方法DBI->connect 这个连接串用冒号分为了几个部分,请看下表 小节 说明 DBI 接口类型 mysql 数据库类型 test 数据库名称 192.168.1.2 数据库主机地址 在前面例子中的连接串中,DBI表示这是DBI 有兴趣的读者可以参考DBI的相关资料。 最后是收尾工作。 参考资源 ---- 《Programming the Perl DBI》 O'Reily DBI官方网站 https://dbi.perl.org/ 一个DBI编程的简短介绍
2、dBi 和dBd dBi和dBd是考征增益的值(功率增益),两者都是一个相对值,但参考基准不一样。dBi的参考基准为全方向性天线,dBd的参考基准为偶极子,所以两者略有不同。 [例3] 对于一面增益为16dBd的天线,其增益折算成单位为dBi时,则为18.15dBi (一般忽略小数位,为18dBi)。 [例4] 0dBd=2.15dBi。 [例5] GSM900天线增益可以为13dBd(15dBi),GSM1800天线增益可以为15dBd(17dBi)。 dBi的参考基准为全方向性天线;dBd的参考基准为偶极子。一般认为dBi和dBd表示同一个增益,用dBi表示的值比用dBd表示的要大2.15 dBi。 例如:对于一增益为16 dBd的天线,其增益折算成单位为dBi时,则为18.15dBi,一般忽略小数位,为18dBi。 dB也是功率增益的单位,表示一个相对值。
我们常说:“传播损耗是xx dB”、“发射功率是xx dBm”、“天线增益是xx dBi”…… 这些乱七八糟的dB,究竟有什么区别呢? 这事不得不先从dB说起。 说到dB,最常见的应该就是3 dB。 dB家族中常见的还有dBi、dBd、dBc。它们的计算方法与dB的计算方法完全一样,表示的还是功率的相对值。 不同的是,它们的参考基准不同,即分母上的参考功率P0所代表的含义不同。 ? 一般认为,表示同一个增益,用dBi表示出来比用dBd表示出来要大2.15。这个差值是两种天线的不同方向性导致的,这里咱们就不展开说了。 ? 相对值: 符号 全称 参考基准 dB decibel - dBc decibel carrier 载波功率 dBd decibe dipole 偶极子功率密度 dBi decibel isotropic
SPI 与 DBI 性能对比 R128 平台的 SPI 接口参数如下 全双工同步串行接口 Master/Slave模式可配置 支持最大96MHz时钟频率 支持SPI Mode0/1/2/3 片选和时钟的极性和相位可配置 Standard Single/Dual/Quad SPI,FIFO深度64B 支持BIT模式,用于3Wire场景,支持可编程0~32bits帧长度(仅支持Master模式,且不支持DMA和FIFO功能) 支持DBI 模式,用于显示设备场景,用于传输视频数据 R128 平台的 DBI 接口参数如下 支持DBI Type C 3线/4线接口模式 支持2数据通道接口模式 支持从CPU或DMA获取数据源 支持RGB111/ 240 x 320 @ 60Hz或320 x 480 @ 30Hz 支持TE 支持软件灵活控制视频帧率 测试结果 屏幕 SPI 模式 lv_music_demo SPI 模式 lv_benchmark DBI 33 50 38 67 测试数据 ST7789v 1.3 寸 240x240 屏幕测试 DBI 模式 lv_music_demo 跑分:38fps lv_benchmark 跑分:60fps SPI
DBI驱动ST7789V1.3寸LCD 之前介绍了 R128 平台使用 SPI 驱动显示屏 ST7789V1.3寸 LCD,接下来介绍的是使用 DBI 接口驱动。 所以 normal spi 只能模拟 4 线的 DBI 的写操作。读操作只能通过模拟IO来实现。 对于R128这类支持 DBI 接口的CPU,可以选择不去了解 SPI。直接选用 DBI 来驱动屏幕。 --> -*- enable dbi driver 配置 SPI 引脚 DBI同样使用 SPI 控制器,所以需要配置SPI的相关配置。 接口像素格式,这里是 RGB565 lcd_dbi_fmt = 2 ; 配置 DBI 时钟的行为模式,这里是自动停止模式。 有数据就有时钟,没发数据就没有时钟 lcd_dbi_clk_mode = 0 ; 屏幕没有 TE 脚,配置 TE 为 0 lcd_dbi_te = 0 ; 配置屏幕 DBI 格式
> DMIC-DATA2 UART0-TX SDC-CLK I2S-DIN PWM1 LCD-D6 PA-EINT4 PA5 GPIOA I/O SPI1-MISO<DBI-SDI/DBI-TE/DBI-DCX /DBI-WRX> DMIC-CLK UART0-RX SDC-DATA3 I2S-MCLK LCD-CLK LCD-D14 PA-EINT6 PA7 GPIOA I/O SPI1-WP<DBI-TE> -SCL LCD-D20 PA-EINT14 PA15 GPIOA I/O PWM1 SPI1-HOLD<DBI-DCX/DBI-WRX> UART2-TX SIM-CLK UART1-CTS TWI1 <DBI-SDI/DBI-TE/DBI-DCX> NCSI-MCLK LCD-DE PA-EINT21 PA22/WUPIO8 GPIOA I/O I2S-DOUT UART1-TX PWM7 DMIC-DATA3 I/O SPI1-MISO<DBI-SDI/DBI-TE/DBI-DCX> SPI1 Master Data In, Slave Data Out/Data Input Signal/Tearing
SPI屏支持以下几种模式: 3 线 1 DATA 3 线 2 DATA 4线1 DATA 4线2 DATA 2 DATA Lane DBI-CSX DBI-CSX DBI-CSX DBI-CSX DBI-CSX / / DBI-DCX DBI-DCX / DBI-SCLK DBI-SCLK DBI-SCLK DBI-SCLK DBI-SCLK DBI-SDA DBI-SDO DBI-SDA DBI-SDO DBI-SDA / DBI-SDI / DBI-SDI WRX DBI-TE DBI-TE DBI-TE DBI-TE DBI-TE DBI接口与SPI1复用关系 SPI DBI SPI1-CS DBI-CSX SPI1 -CLK DBI-SCLK SPI1-MOSI DBI-SDO/SDA SPI1-MISO DBI-SDI(WRX)/TE/DC X SPI1-HOLD DBI-DCX/WRX SPI1-WP DBI-TE
SPI LCD 颜色相关问题 首先,得先确定显示屏使用的是SPI接口,还是DBI接口,不同的接口,输入数据的解析方式是不一样的。 阅读lcd_dbi_if部分的介绍可以知道,在3线模式时,发送命令前有1位A0用于指示当前发送的是数据,还是命令。 所以 normal spi 只能模拟4 线的DBI的写操作。 对于R128这类支持DBI接口的CPU,可以选择不去了解SPI。如果需要用到SPI去驱动显示屏,必须把显示屏设置成小端。 为例,这显示屏的显示驱动也是 ST7789,但是不同的屏幕,厂家封装时已经限制了通讯方式,所以即使是能使用 DBI 接口的驱动芯片的屏幕,或许也用不了DBI。 因为屏幕是大端,而芯片存储方式是小端,所以芯片的 DBI 模块,会自动把数据从新排列,也就是实际上 DBI 发送数据时,会先发送0x00,再发送0xff,也就是红色分量为0,绿色分量为 0b000111
SPI通讯的问题首先考虑是不是 spi_dbi_enable 的问题,目前 spi_dbi_enable 设置的是1,在将 spi_dbi_enable 设置为0后CLK,MOSI都没有数据了。 其实spi_dbi_enable是spi lcd显示屏专用的驱动,配置两个逻辑不太一样 配置lcd屏幕需要单独写lcd的配置 &lcd_fb0 { lcd_used = <1>; lcd_driver_name = "kld2844b"; lcd_if = <1>; lcd_dbi_if = <4>; lcd_data_speed = <60>; lcd_spi_bus_num = <1>; lcd_x lcd_pwm_used = <1>; lcd_pwm_ch = <7>; lcd_pwm_freq = <5000>; lcd_pwm_pol = <0>; lcd_pixel_fmt = <0>; lcd_dbi_fmt lcd_rgb_order = <0>; lcd_frm = <1>; lcd_gamma_en = <1>; fb_buffer_num = <2>; lcd_backlight = <100>; lcd_dbi_te
mysql::dr::imp_data_size unexpectedly at /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/DBI.pm mysql::db::imp_data_size unexpectedly at /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/DBI.pm 2、故障解决 ###查看当前系统的dbi与dbd包,如下表明2个包都已安装 # rpm -qa|grep -i dbi perl-DBI-1.52-2.el5 # rpm -qa|grep -i dbd perl-DBD-Pg-1.49-4.el5_8 perl-DBD-MySQL-3.0007-2.el5 ###我们首先卸载这2个rpm包 # rpm -e --nodeps perl-DBI-1.52 -2.el5 # rpm -e --nodeps perl-DBD-MySQL-3.0007-2.el5 ###下面使用yum方式分别安装这2个包 # yum install perl-DBI Loaded
登录mysql: mysql -u root -p 接下来会提示输入密码 具体方法参见点击打开链接 mysql安装完毕,接下来要安装两个工具 1.dbi ------即database interface 有了最底层的DBD,还不行,每一种DBD的使用方式还不一样,因此Ruby提供了一个基于DBD的接口-----DBI DBI会把所有DBD整合在一起,也就是说有了DBI,不论你使用的数据库是mysql,sql 使用 gem 安装 dbi 与 mysql驱动 gem install dbi 在这一步你很有可能安装失败,你需要先安装rails gem install rails 然后再安装dbi gem install dbi 安装mysql驱动 gem install dbd-mysql 接下来安装mysql客户端api gem install mysql2 上面这条命令我目前还没有搞明白它的用途,但是接下来我会有一段时间执行这条命令
如果设置了dbi接口,那么还需要进一步区分dbi接口,需要设置 lcd_dbi_if lcd_dbi_if Lcd dbi 接口设置。 这个参数只有在lcd_if=1时才有效。 lcd_dbi_fmt DBI接口像素格式。 lcd_fps和lcd_dbi_te是刷新方式相关的设置。 原SPI接口屏配置 如果IC支持DBI接口,那么就没有必要用SPI接口,DBI接口其协议能覆盖所有情况。 硬件设计阶段,需要将屏的te脚连接到IC的DBI接口的te脚。 配置上接口使用dbi接口。 然后使能lcd_dbi_te。 lcd_dbi_fmt,这个用于设置DBI接口发送的像素格式。 SPI/DBI发送数据的时候没有必要发送alpha通道,但是应用层却有对应的alpha通道,比如ARGB8888格式。
等效全向辐射功率 天线增益< 10 dBi 时:≤ 100 mW 或≤ 20 dBm;天线增益≥ 10 dBi 时:≤ 500 mW 或≤ 27 dBm。 跳频工作方式:天线增益< 10 dBi 时:≤ 20 dBm/MHz (EIRP);天线增益≥ 10 dBi 时:≤ 27 dBm/MHz (EIRP)。 跳频工作方式:天线增益< 10 dBi 时:≤ 20 dBm/MHz (EIRP);天线增益≥ 10 dBi 时:≤ 27 dBm/MHz (EIRP)。 跳频工作方式:天线增益< 10 dBi 时:≤ 20 dBm/MHz (EIRP);天线增益≥ 10 dBi 时:≤ 27 dBm/MHz (EIRP)。 跳频工作方式:天线增益< 10 dBi 时:≤ 20 dBm/MHz (EIRP);天线增益≥ 10 dBi 时:≤ 27 dBm/MHz (EIRP)。
大海:其实,现在Power BI的自定义图表里有一个叫3DBI的,就是用来做3D可视化的。 小勤:下载这个自定义图表就可以了?好像还是免费的哦! 大海:当然不是! 这个3DBI的自定义图表,只是相当于给了Power BI一个“容器”,让Power BI可以展示3D的内容,并且可以和具体的数据联动。 小勤:那具体要怎么做呢? 大海:具体的过程是这样的: 01 3D模型设计 用3D模型设计软件SketchUp Pro(或Revit、AutoDesk)按实际需要制作3D模型 02 导出3DBI文件 将3D模型导出为3DBI格式的文件 (3DBI为设计软件提供了插件) 03 3D文件引用 将3DBI文件导入Power BI的3DBI图表中,和数据模型进行关联使用。 大海:但实际制作3D模型非常耗时间的,同时如果要自己用SketchUP设计3D模型的话,软件也是要钱的,还有3DBI导出插件也是要购买的,不过相对于3D模型设计所要花费的人工成本,购买插件的成本并不算高
(三) 安装Perl的相关模块DBI、DBD 1.安装DBI 下载DBI-1.609.tar.g; tar –xvzf DBI-1.609.tar.gz; cd DBI-1.609; perl Makefile.PL ; make; make test; make install; 2.安装DBD 下载DBI-1.609.tar.g; tar –xvzf DBD-mysql-4.012.tar.gz; cd DBD-mysql /usr/bin/perl #load module use DBI; #connect my $dbh = DBI->connect(“DBI:mysql:database=test;host=localhost /usr/bin/perl #load module use DBI; #connect my $dbh = DBI->connect(“DBI:mysql:database=test;host=localhost
11.1 2.4G定向天线套件 1.1.1 2.4G定向天线 该产品工作在2.4GHz频段,增益14dBi,适合室外定向覆盖/桥接。 电气性能 频率范围 2400-2483MHz 增益 14dBi 水平波瓣宽度 90° 垂直波瓣宽度 14° 前后比 ≥25bB 驻波比V.S.W.R ≤1.5 极化方式 垂直极化 输入阻抗 50Ω 耐功率 输入阻抗 50Ω 插入损耗 0.1Db 峰值功率 200W 接口方式 NF – NM 21.2 2.4G全向天线套件 1.2.1 2.4G全向天线 该产品工作在2.4GHz频段,增益8dBi 电气性能 频率范围 2400-2483MHz 增益 8dBi 水平波瓣宽度 360 垂直波瓣宽度 16 驻波比V.S.W.R ≤1.5 极化方式 垂直极化 输入阻抗 50Ω 耐功率 100w 避雷保护 电气性能 频率范围 5725-5850MHz 增益 15dBi 水平波瓣宽度 120° 垂直波瓣宽度 10° 前后比 ≥25bB 驻波比V.S.W.R ≤1.5 极化方式 垂直极化 输入阻抗 50Ω
关于dB相对度量参数的由来、意义,可以参考《dB相对度量参数——入门篇》,本篇解析“为什么3dB是半功率点”、“典型dB值”、“关于dBi,dBd,dBc,dBFs”—— 为什么3dB是半功率点 我们经常听到 我们也可以进行快速换算,如: 54dBm = 30dBm + 10db + 10db + 10db - 3dB -3dB = 1W x 10 x 10 x 10 x 0.5 x 0.5 =250W 关于dBi ,dBd,dBc,dBFs dBi = Decibels Isotropic dBd = Decibels Dipole dBc = Decibels Carrier dBFS = Decibels Relative to Full-Scale dBi和dBd都是标识功率增益的相对值,但dBi的参考基准为全方向性天线(isotropic antenna),而dBd的参考基准为偶极子天线(dipole antenna ),一般认为,表示同一个增益时,用dBi表示出来比用dBd表示出来的要大2.15; dBc表示载波功率相对值,可以度量干扰(同频干扰、互调干扰、交调干扰、带外干扰)以及耦合、杂散等信号相对量值,在采用dBc
3,js定义语言变量,全文替换,如: var dbi = document.body.innerHTML; var TOLAN = eval(LAN); for(var n= 0;n<CN.length;n++){ dbi= dbi.replace(eval("/"+CN[n]+"/g"), TOLAN[n]); } document.body.innerHTML = dbi; 这种方式不推荐使用,处理性能低下,如果页面有事件绑定等内容,还会导致很多问题。
射频相关工作中常遇到W、mW、dB、dBm、dBW、dBc、dBi、dBd,总结如下: 1、dBm是一个表征功率绝对值的值,以1mW作为基准单位: 当发射功率P1=1mW,则换算为0dBm。 4、dBi和dBd都是表征功率增益相对值,但参考的基准不一样;dBi的参考基准为全方向性天线,dBd的参考基准为偶极子。一般认为,表示同一个增益,用dBi表示出来比用dBd表示出来要大2.15。