RJ's profile上上签PhotosBlogListsMore Tools Help

上上签

征程

RJ

Location
Interests
不再轻狂

Windows Media Player

August 02

iic vhdl 私有版权

LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY iic001 IS
 PORT
 (
  clk   : IN  STD_LOGIC;                                        
  start  : IN  STD_LOGIC;                                        
  restart  : IN  STD_LOGIC;                                        
  data  : INOUT  STD_LOGIC_VECTOR(7 DOWNTO 0);                                        
  inoutda  : BUFFER STD_LOGIC;                                        
  busy  : OUT  STD_LOGIC;                                        
  scl   : INOUT  STD_LOGIC;                                                             
  sda   : INOUT  STD_LOGIC;
  continue   : OUT  STD_LOGIC
 );
 
END iic001;
ARCHITECTURE jet OF iic001 IS
 SIGNAL i : integer range 0 TO 32 := 0 ;--step status word
BEGIN
 p0:process(clk,start,restart)
 variable j : integer range 0 TO 8 := 0 ;
 variable data_signal : STD_LOGIC_VECTOR(7 DOWNTO 0);
 begin
  if clk'EVENT AND clk = '1' then
  
   if inoutda = '1' then--data input enable
    data <= (others => 'Z');
   end if;
   
   if i = 0 then                      
    inoutda <= '1';--init
     if start = '0' then
     scl <= 'Z';
     sda <= 'Z';
     busy <= '0';
     continue <= '0';
    else           --start
     scl <= 'Z';
     sda <= '0';
     i <= 1;
     busy <= '1';
     data_signal := data;
    end if; 
   end if;
   
   if i = 1 then--address and read or write status
    scl <= '0';     
    i <= 2;
   end if;
   if i = 2 then
    scl <= '0';
    if j <= 7 then
     sda <= data_signal(7-j);
     j := j+1;
    end if;
    i <= 3;
   end if;
   
   if i = 3 then
    scl <= 'Z';
    i <= 4;
   end if;
    
   if i = 4 then
    scl <= '0';
    if j = 8 then
     j := 0;
     i <= 5;
    else
     i <= 2;
    end if;
   end if;   
   if i = 5 then
    sda <= 'Z';
    i <= 6;      
   end if;
   
   if i = 6 then
    scl <= 'Z';
    i <= 7;
   end if;
   
   if i = 7 then--slave react
    scl <= '0';
    if sda = '0' then
     if data_signal(0) = '1' then
      i <= 8;--choose read process
     else
      i <= 31;--choose write process
     end if;
    else
     i <= 0;
    end if;
   end if;
   
   if i = 8 then--read process
    i <= 9;
   end if;
   
   if i = 9 then
    scl <= 'Z';
    i <= 10;
    inoutda <= '1';
    continue <= '1';
   end if;
   
   if i = 10 then
    scl <= '0';
    if j <= 7 then
     data_signal(7-j):= sda;
     j := j+1;
    end if;
    if j = 8 then
     j := 0;
     i <= 12;
     inoutda <= '0';
     data <= data_signal;
    else
     i <= 11;
    end if;
   end if;
   
   if i = 11 then
    i <= 9;
   end if;
   if i = 12 then
    if start = '1' then
     sda <= '0';
     i <= 13;--choose continue read
     continue <= '0';
    else
     i <= 32;--choose end
     sda <= '0';
    end if;
   end if;
   if i = 13 then--continue read
    scl <= 'Z';
    i <= 14;
   end if;
   
   if i = 14 then
    scl <= '0';
    i <= 15;
   end if;
   
   if i = 15 then
    sda <='Z';
    i <= 9;
   end if;
   
   if i = 32 then--end
    scl <= 'Z';
    i <= 0;
   end if;
   
   
   
   
   
     
  end if;  
 
 
 end process p0;
 
 
 
END jet;
 
July 07

幅度概率分布(APD)测量技术介绍

幅度概率分布(APD)测量技术是分析不同特性的骚扰源对不同制式的数字通信系统的影响的新方法。本文介绍了国际无线电干扰特别委员会(CISPR)关于APD技术标准制订的最新进展,侧重于APD测量方法、APD测量限值的确定以及APD测量仪的基本技术规范三个方面,对于APD技术的进一步研究及应用推广具有一定的参考价值。

    引言

    APD是AmplitudeProbabilityDistribution的缩写,即幅度概率分布。它是一个用来描述无线电骚扰统计特性的参量,定义为“骚扰幅度超过某个规定电平的时间概率的累积分布”。APD测试是目前最新的干扰测试方法,与典型的测量方法,如:准峰值检波等常规研究方法相比较,能更好地描述干扰本身的统计特性,突破了准峰值测量的局限性;采用数理统计的方法研究干扰源的本质,为研究分析不同特性的骚扰源对不同制式的通信系统的影响开辟了新的途径。

    CISPR规定的各种骚扰测量限值都以峰值、准峰值、平均值或有效值来表示,其目的是为了保护广播、电视、通信系统和其它电子设备的正常运行。准峰值反映了人的耳朵和眼睛对干扰的主观感觉;通信系统和电子设备根据信噪比来要求电磁环境,这里的噪声常用有效值、平均值、峰值等表示。这些量值对评价模拟系统是有效的,但是很难与误码率建立联系。随着社会的进步,数字系统已大大发展,而数字系统是用误码率来评价系统性能的,只有确定了干扰的幅度统计特性才能确定数字通信系统的误码率,并且找出误码率和系统输入信噪比的关系,因此与衡量数字通信系统性能直接有关的是干扰的幅度统计特性,而非传统的准峰值、平均值。APD测试就是用来测量干扰模型的统计特性的,是评估数字通信系统性能的最优方案之一。

    APD测量方法[1]

    APD测量是针对频率点进行的。APD分析仪连接在骚扰测量仪(测试接收机或频谱仪)的中频包络检波输出端,对中频包络分层测量,各层幅度对应于接收机输入端的电平。APD分析仪的结构有二种,一是用比较器+计数器,比较器数即分层数;二是使用A/D变换器+计数器+存储器,分层数即A/D变换器的分辨率,例如8位A/D变换器可有256层。

    APD测量结果如图1和图2所示,横轴是层电平,纵轴是幅度超过某层电平的概率。由曲线可知超过低电平层的概率大,超过高电平层的概率小。骚扰增强,曲线向右移动。

幅度概率分布(APD)测量技术介绍(图一)

    图1  用APD作符合测试的方法之一

幅度概率分布(APD)测量技术介绍(图二)

    图2  用APD作符合性测试的方法二

    其中APD定义的限值点有二个参数:电平限值Elimit和概率限值Plimit。用APD作符合性测试时有两种方法。

    方法一(如图1所示):确定Plimit,测量Plimit条件下的电平E。如果E

    方法二(如图2所示):确定Elimit,测量超过Elimit的概率P。如果P

    APD限值的确定[1]

    只有确定了APD和通信接收抗误码率BER之间的相关性,才可导出APD限值的确定方法。

    首先测出通信接收机的误码率BER,测试方法见图3。测量结果见图4,横轴为接收到的有用信号电压U,纵轴是误码率。图4中最右边曲线为没有EUT干扰时的误码率。接收到的有用信号越大,误码率越小。右边4条曲线是EUT发出不同强度干扰时的误码率。干扰越大,曲线越右移。由图4可知,在确定误码率为10-2条件下,有EUT干扰时必须增加有用信号强度U,在可接受的性能降低的极限情况下需增加U。

幅度概率分布(APD)测量技术介绍(图三)

    图3  通信接收机误码率BER的测试方法

幅度概率分布(APD)测量技术介绍(图四)

    图4  通信接收机误码率和接收到的有用信号的测试结果

幅度概率分布(APD)测量技术介绍(图五)

    图5  用频谱仪和APD分析测量EUT干扰的APD值

幅度概率分布(APD)测量技术介绍(图六)

    图6  EUT干扰的APD值测量结果

    然后再用频谱仪和APD分析仪测量EUT干扰的APD值,测量方法见图5。测量结果见图6,横轴为干扰电压,纵轴是概率,最左边曲线是EUT不工作情况,右边4条曲线是EUT发出不同强度干扰时的APD。由图6可知当概率确保在10-2条件下,干扰的层电压增加了V。

    实验和仿真结果证明:当误码率和干扰概率相等的情况下,测误码率时U的增加量U和测APD时干扰V的增加量V有很明显的相关性。因此可以利用这种相关性来确定APD的限值点。通常要求通信系统话音传输的BER为10-2,数据传输的BER为10-4。由此可规定APD的概率限值Plimit分别为10-2,10-4。再根据二者的相关性,由图6中的V,得出与Plimit10-2和10-4相应的两个电平限值Vlimit值。

    APD测量仪的规范[1]

    3.1APD测量仪的指标要求

    以上分析了CISPR关于APD测量方法、APD限值的确定的进展,下面进一步介绍APD测量仪的指标要求。

    APD测量功能可作为测量设备的附加功能,附加到现有测量仪器或使用一体化测量仪器上。APD测量功能可由两种方法实现:一种使用比较器和计数器,如图7所示,设备确定超出一组预设电平的概率,电平的数目等于比较器的数目;另一种使用A/D变换器、逻辑电路、存储器,如图8所示,该设备也可提供预设电平的APD图,电平的数目取决于A/D变换器的分辨率(如8bit变换器提供256级电平)。

幅度概率分布(APD)测量技术介绍(图七)

    图7  APD测量电路(比较器、计数器)框图

幅度概率分布(APD)测量技术介绍(图八)

    图8  APD测量电路(A/D变换器)框图

    3.2APD测量功能的规范

    如果能够判定设备或设备系列可能造成对数字通信系统的干扰,APD测量就可应用于这些产品。下面是应用于APD测量功能的规范。

    (1)幅度动态范围:大于60dB。

    幅度的动态范围定义为获得APD的必要范围。动态范围的上限应大于要测量的骚扰的峰值电平,下限应低于产品委员会规定的骚扰限值电平。根据CISPR11中,对于ISM设备,group2,ClassB,峰值限值规定为110dBμV/m,加权限值指定为60dBμV/m。因此提议动态范围大于60dB,并有10dB余量。

    (2)幅度精度(包括阀值电平设置误差):优于±2.7dB。

    (3)骚扰最大测量时间:≥2min,测量中断时间小于总测量时间的1%。

    CISPR11为1GHz以上的微波烹饪器具的峰值测量制订的最大保持时间为2min一周期,因而APD的测量时间的最小值为2min。因为计数器或存储器的数量是有限的,对于长测量周期,连续测量可能有困难,因此,在测量中断时间小于总测量时间的1%的条件下,允许间断测量。

    (4)APD测量功能可分配至少两级电平,能够同时测量所有预设电平的概率,预设电平的分辨率优于:0.25dB。

    (5)最小可测概率:10-7。

    为获得有意义的测量结果,测量过程中出现约100次取值是必要的。因此最小可测概率计算如下:

    假定测量时间2min,采样率10M/s,概率确定为

    100/(12010106)~10-7。

    (6)采样率:≥10M/s(分辨带宽1MHz)。

    理想情况下,使用要保护的无线设备的等效带宽测量骚扰的APD。然而,对于1GHz以上的频率范围频谱分析仪的分辨带宽指定为1MHz,因而采用率应大于10M/s。

    (7)推荐规范:使用A/D变换器时,测量结果显示的幅度分辨率优于:0.25dB。

    APD结果显示的分辨率取决于动态范围和A/D变换器的分辨率。例如,使用8bitA/D变换器,动态范围60dB时,显示的分辨率小于0.25 dB(60 dB/256)。

    总结

    传统的测量方法,如准峰值检波、有效值检波,是测量干扰对系统影响的最终结果,与干扰的本质有关,还同系统的性能有关,这给无线干扰的测量带来了不确定因素。随着无线技术的发展,干扰的研究是测量行业面临的突出问题——必须寻找新的测量方法,对其进行评估,而APD测量结果是干扰本身的统计特性,与系统性能无关,所以更具有广泛性和适宜性,但APD技术现在只是摸索阶段,标准化和产品化进程相对缓慢。

    根据CISPR的进展可知,有关APD的内容有三部分:

    (1)APD测量仪的指标要求——CISPR/A分会已于2006.2.24全部通过,不久就会写进第二版CISPR16-1-1中。

    (2)APD测量方法——已进入CDV阶段,即将付与投票,建议加入CISPR16-2-3中。

    (3)APD限值的确定(APD与BER的关系)——CISPR/A分会已写出指南,发给各产品委员会,等待他们提出建议。限值确定以后,将加入CISPR-16-3中。

    国内的测量界同仁们应积极跟踪APD技术,制订相关测试标准,研制相关仪器仪表,开展相关的测试工作,更好地服务于干扰的测量和研究,为无线电监测和设备检测提供更科学、更准确的测量方法和手段。

    参考文献

    [1]CISPR/A/594/DC:Guidancefor applying the APD method to compliance testing and for developing APD emission limits.

    [2]CISPR16-1-1Ed.2: Specification for radio disburbance and immunity measuring apparatus and methods-Part 1-1: Radio disturbance and immunity measuring apparatus - Measurement apparatus.

May 30

30Mhz电波传播

30MHz电磁波具有复杂的传播特性:

 

30MHz电磁波是短波和超短波的分界,可以通过地波传播和天波传播。

地波传播时,30MHz电磁波表现出复杂的反射和绕射现象。

有很多设备,如对讲机,利用其绕射进行近距离通信。

 

天波传播时,30MHz电磁波处于电离层反射频率的边缘。

白天电离层密度较大,通过电离层反射,可以达到很好的通信质量。

电离层密度较小时不能对其形成反射。

但可以通过电离层散射传播。

也可以透过电离层使用卫星通信。

 

信道色散:

 

信道中主要有两类衰落:大尺度衰落和小尺度衰落。

 

大尺度衰落是由于在大范围内移动而引起的平均信号能量的减少或路径损耗,这种现象产生的原因是收、发端之间地表轮廓的影响,通常称接收机被这些突出物“遮挡”了。

小尺度衰落是指信号的幅值、相位的动态变化,这种变化是由于收、发端之间空间位置的微小变化(小至半个波长)引起的。

小尺度衰落表现为两种机制:信号的时延扩展和信道的时变特性。

 

直射波损耗:

直射波传播损耗可看成自由空间的电波传播损耗:

 

绕射波损耗:

各种障碍物对电波传输所引起的损耗。

 

菲涅尔余隙:

图中x表示障碍物顶点P至直线TR之间的垂直距离,在传播理论中x称为菲涅尔余隙。

(a)     负余隙

(b)    正余隙

 

障碍物引起的绕射损耗与菲涅尔余隙之间的关系:

当横坐标x/x1>0.5时,则障碍物对直射波的传播基本上没有影响。当x=0时,TR直射线从障碍物顶点擦过时,绕射损耗约6dB;当x<0时,TR直射线低于障碍物顶点,损耗急剧增加。其中x1称菲涅尔半径(第一菲涅尔半径)

 

反射波相位损耗:

      

       反射波与直射波的行距差为:

             

             

       两路信号到达接收天线的时间差换算成相位差为:

散射波损耗:

 

       散射波产生于粗糙表面,小物体或其他不规则物体。实际的通信系统中,树叶、街道标志和灯柱等会引发散射。

 

多径效应:

       设发射机发出的信号为:

       则接收机接收端收到的合成信号为:

 

 

 

式中      为第i条路径的接收信号;     为第i条路径的传输时间;     为第i条路径的相位滞后.

            随时间的变化与发射信号的载频周期相比,通常要缓慢得多,所以,可以认为是缓慢变化的随机过程。

所以      可写成:

 

 

 

 

市区传播衰耗:

 

在城市街道地区,电波传播衰耗取决于传播距离、工作频率、基地站天线有效高度、移动台天线高度以及街道的走向和宽度等。

OM模型中,给出了准平滑地形,市区传播衰耗中值的预测曲线族。但OM模型适用的范围:频率150MHZ ~1500MHZ(可扩展到3000MHz),基地站天线高度为30~200,移动台天线高度为1~10,传播距离为1~20千米的场强预测。 

综上:

30MHz电磁波信道的复杂性和多变性,很难用一准确的模型来描述它。可以采用统计的方法对信道进行描述,并建立信道的统计模型。

 

Longley-Rice模型:

       Longley-Rice模型的计算基于计算机的统计模型,可以用来仿真计算30MHz信号的模拟预测。

Longley-Rice模型以传播理论为依据,同时结合了数千组实测数据,因此称其为半经验预测模型Longley-Rice模型预测损耗值的计算基于不同传播范围:①在视距内,以反射传播机制为主,用双线模型计算;②在超视距,以衍射传播机制为主,但对于不规则地形 ,有两种理论用于计算衍射损耗,它们分别适用于非球形但光滑的地面和非常不规则的地面,用刀口模型计算,超视距衍射损耗计算结果是以上两种理论计算结果的加权 ;③对于更远距离(大大超出地平线),以前向散射传播机制为主。

Longley-Rice模型中的实测数据大多数取自101000 MHz的频率范围,其中20100 MHz的数据涉及 5--50 km的距离和 19m的收、发信天线高度 ;较高频段的数据涉及 51 000 km的距离,101500m的发射天线高度和 39 m的接收天线高度.数据来源于世界各地,但主要是美国,多数为移动记录结果.Longley-Rice模型给出了参考衰减值的计算公式及不同环境下相关修正因子的详细说明,公式中所使用的参数包括:不规则地形参数、频率、收发信机天线高度和表面折射率等.同时还引入了反映介质特性的两个参数:介电常数和导电率.

以传播理论为依据,加上极其丰富的实测数据,使得 Longley-Rice模型使用范围得到了拓展,其适用范围如下:频率范围为 2040000 MHz,收发信机天线高度为0.53 000 m,覆盖半径为 12 000 km,表面折射率为 250400 Ns

有一个估算公式,没找到)。

April 03

SQL0440

SQL0440

A SQL0444 error indicates that the procedure with compatible arguments could not be found. This error does not indicate a serious problem, and it usually occurs at run time. There are two common causes:

  • CREATE PROCEDURE statement was not issued to define a procedure at the current server. Therefore DB2 is unable to locate the procedure.

    Solution: Issue the missing CREATE PROCEDURE statement.

  • The procedure is invoked with an incorrect number of agruments. That is, you may have provided an incorrect number of input or output parameters, or you may have provided an improper data type in one of the parameters. Therefore, DB2 could not find a procedure with the matching arguments to invoke.

    Solution: Check the CREATE PROCEDURE statement and make sure you are passing the correct number of input and output parameters with proper data types.

Here is an example of the second situation where an incorrect number of parameters are passed to the procedure during runtime. This example uses the sample stored procedures OUT_LANGUAGE and ALL_DATA_TYPES that are shipped with the DB2 product. You may locate the source code in /instance_home/sqllib/samples/java/jdbc/SpServer.java, and the corresponding CREATE PROCEDURE statements in /instance_home/sqllib/samples/java/jdbc/SpCreate.db2 on UNIX platforms, where instance_home is your instance home directory. On Windows, the default location of the files are in C:\Program Files\IBM\SQLLIB\samples\java\jdbc\SpServer.java and C:\Program Files\IBM\SQLLIB\samples\java\jdbc\SpCreate.db2.
Listing 41. SQL0440 example: Calling the OUT_LANGUAGE() and ALL_DATA_TYPEs procedure on Windows



D:\>db2 call out_language()
SQL0440N  No authorized routine named "OUT_LANGUAGE" of type "PROCEDURE"
having compatible arguments was found.  SQLSTATE=42884

D:\>db2 call all_data_types (32000, 2147483000, 21478483000, 100000, 2500000)
SQL0440N  No authorized routine named "ALL_DATA_TYPES" of type "PROCEDURE"
having compatible arguments was found.  SQLSTATE=42884

Let's take a look at why SQL0440 is returned. First look at the CREATE PROCEDURE statement to confirm what parameters each of the stored procedures expects.
Listing 42. SQL0440 example: CREATE PROCEDURE statements for OUT_LANGUAGE and ALL_DATA_TYPES procedures



CREATE PROCEDURE OUT_LANGUAGE (OUT LANGUAGE CHAR(8))
SPECIFIC JDBC_OUT_LANGUAGE
DYNAMIC RESULT SETS 0
DETERMINISTIC
LANGUAGE JAVA
PARAMETER STYLE JAVA
NO DBINFO
FENCED
THREADSAFE
READS SQL DATA
PROGRAM TYPE SUB
EXTERNAL NAME 'SpServer.outLanguage'

CREATE PROCEDURE ALL_DATA_TYPES (
  INOUT small SMALLINT, 
  INOUT intIn INTEGER,
  INOUT bigIn BIGINT,
  INOUT realIn REAL, 
  INOUT doubleIn DOUBLE,
  OUT charOut CHAR(1),
  OUT charsOut CHAR(15),
  OUT varcharOut VARCHAR(12),
  OUT dateOut DATE,
  OUT timeOut TIME)
SPECIFIC JDBC_ALL_DAT_TYPES
DYNAMIC RESULT SETS 0
NOT DETERMINISTIC
LANGUAGE JAVA 
PARAMETER STYLE JAVA
NO DBINFO
FENCED
THREADSAFE
READS SQL DATA
PROGRAM TYPE SUB
EXTERNAL NAME 'SpServer.allDataTypes'

From the CREATE PROCEDURE statements, you can see that:

  1. The OUT_LANGUAGE procedure expects one output parameter of type char.
  2. The ALL_DATA_TYPES procedure expects 5 input/output parameters, and 5 output parameters, where each of the argument types expected is shown above.

For input parameters, provide a proper value with the correct data type. For output parameters, use a '?' for each output parameter. For input/output parameters, since they are used for both input and output purposes, provide the proper value as if you are just passing a value for an input parameter. Therefore, you should call each of the procedures like below:
Listing 43. SQL0440 example: Calling the OUT_LANGUAGE and ALL_DATA_TYPES procedures properly



D:\>db2 call out_language(?)

  Value of output parameters
  --------------------------
  Parameter Name  : LANGUAGE
  Parameter Value : JAVA

  Return Status = 0

D:\>db2 call all_data_types (32000, 2147483000, 21478483000, 100000, 
2500000, ?, ?, ?, ?, ?)

  Value of output parameters
  --------------------------
  Parameter Name  : SMALL
  Parameter Value : 16000

  Parameter Name  : INTIN
  Parameter Value : 1073741500

  Parameter Name  : BIGIN
  Parameter Value : 10739241500

  Parameter Name  : REALIN
  Parameter Value : +5.00000E+004

  Parameter Name  : DOUBLEIN
  Parameter Value : +1.25000000000000E+006

  Parameter Name  : CHAROUT
  Parameter Value : S

  Parameter Name  : CHARSOUT
  Parameter Value : SCOUTTEN

  Parameter Name  : VARCHAROUT
  Parameter Value : MARILYN

  Parameter Name  : DATEOUT
  Parameter Value : 09/27/2005

  Parameter Name  : TIMEOUT
  Parameter Value : 11:30:16

  Return Status = 0

For more information about how to call procedures from the Command Line Processor (CLP), see this URL: http://publib.boulder.ibm.com/infocenter/db2help/index.jsp?topic=/com.ibm.db2.udb.doc/ad/t0007055.htm.

"ICMLOGON" which cannot be accessed

The installation validation utility failed to connect to your library server or resource manager database.

Possible cause

If you run the installation validation utility on a Turkish Linux® system and if there is an i in any of your administrator user IDs, the utility might fail to connect to the library server or resource manager databases with an error message in the cminstall.log or cmpiv.log file.

For example:
**************************************************************************** 
2005/08/01 05:06:46 ERROR:: VLLS - VerifyItemtypes(): Exception in 
verifyItemtypes()[IBM][CLI Driver][DB2/LINUX] 
SQL0444N  Routine "ICMLOGON" (specific name "SQL050801050646150") is 
implemented with code in library or path ".../sqllib/function/ICMLOGON", 
function "ICMLOGON" which cannot be accessed.  
Reason code: "4".  SQLSTATE=42724
 
icmconct of administrators 
icmadmin of users
****************************************************************************
 
There are no photo albums.