Uestc.Auto6.Dso.Hardware
1、开机调用顺序为:Open,Initialize,AutoCaliPowerOn。程序退出时,要调用Close.
2、硬件响应及要数,必须在同一个线程中。
3、本DLL是基于 非独立PCIE模式。整个工程FPGA分为Acquire FPGA,Process FPGA[K7],PCIE[K7] FPGA 。共3个FPGA工程块。
4、采集的流程为
A、Execute(如果有硬件改变,将自动执行初始化Fifo,否则不执行。为慢时基、单次、正常触发而设计);
B、AcqWave(返回是否读到数据,Fifo满,将数据读到软件端。长存储的数据采用乒乓方式);
C、特殊的数据读取(主要是长存储下的)
5、本DLL适用于XXXX 型号工程。
打开硬件
PCIE通信没有用到,为Usb等通信预留。目前没有使用,可填任意值
使用真实硬件还是模拟硬件。模拟硬件只能产生模拟波形,其他的读入数皆为0.缺省为true
目前没有使用,缺省为false
退出程序前,必须调用。
硬件系统基本初始化。执行此操作后,硬件处于缺省的正确的工作状态。系统上电时执行一次
执行上电后的自动校准。是否执行由调用者决定。
硬件响应。
系统参数
是否执行过新的硬件命令
只要主要的FIFO满,就返回true;是否真实存在数据,需要相应的采集器的读取函数确定
`
频率计
波形获取器
温度传感器
解码器
测试用的函数,在正式代码中应该删除,同时,测试通过后需要正式使用的,要移除此函数,并写入正式代码。因为该函数可能不被调用。
上电缺省初始化,与系统的环境变量无关
开启下一次新的采集
读取采集到的数据
采集数据的后处理
模拟通道波形采集
正在采集的采集参数
已经采集的数据的采集参数。在读回数据后赋值
频率计
闸门时间可选列表
复位
读取以Hz为单位的频率数。
如果存在多个频率计,则读取指定通道的频率计。-1表示触发通道
如果读取失败,返回Double.NaN。以Hz为单位
根据系统的设置参数而进行的配置
供Core调用的对外接口函数
正在采集的采集参数
已经采集的数据的采集参数。在读回数据后赋值
供Core调用的对外接口函数
模拟模拟通道波形数据
读取以摄氏度为单位的温度传感器数据。
第几个传感器,目前只有一个。
存储模式:长存储,普通存储
只对长存储有用
最高采样率(合并后的)下,单一抽取器来计算的。
在硬件端存储数据的采样率
读取回来的数据的采样率。对长存储来说,是读回来的数据。因为在读取的过程中好,可能存在二次抽取。
送给对外接口时的采样率。可能存在软件端的插值处理。如果没有软件端的插值,就是PerDataByfs
设置的触发时间
长存储读回的触发点地址
模拟通道
Offset,Bias,Trigger Volt等DAC控制
采集Fifo阶段的深度
配置数字触发相关参数。如丢点数,搜索宽度等。
开关数字触发
界面上的通道基线自动校准功能。
站位值;bit0=channel1,bit1=channel2,bit=channel3,....位值=1表示有错误,位值=0表示没有错误,校准成功。
完成基本配置
板内测试
完成基本配置
板内测试
完成基本配置
板内测试
共有[76]个寄存器,其中写寄存器[38]个,读寄存器[38个].
FPGA中还有[4]个定义的寄存器在软件中没有使用。
在本文件中出现[todo...]字样的地方需要注意使用,并尽量与硬件人员一起完善。
共有[38]个.
ADC配置SPI片选[write]
同时控制两片ADC,状态有效,1选中,0不选中。bit1=ADC1,0=ADC0
ADC配置SPI使能[write]
同时控制两片ADC。先发送数据,然后对应位拉高。见原有代码SendCmdToLMX2595
ADC5200掉电模式[write]
同时控制两片ADC,每片占1位,1=掉电,0=上电
jesd204b数据接收核复位[write]
同时控制所有jesd核复位,1有效
边沿触发边沿选择[write]
1位,1=上升沿,0=下降沿
比较电平-上限[write]
以12Bit之4096为基准
比较电平-下限[write]
以12Bit之4096为基准
预触发深度[write]
以XXXXXXXXXXXXXXX
采集板串行FIFO深度[write]
数字触发找点范围[write]
数字触发自动触发开关[write]
2级数字触发开关[write]
2级数字触发源选择[write]
7044_SPI_Data低16位[write]
7044_SPI_Data高8位[write]
7044_SPI_写使能[write]
7044写使能,写0-1触发一次读写
7044_控制_同步[write]
7044 sync同步引脚 写0-1-0触发一次锁相环同步
7044_控制_复位[write]
044复位 写0-1-0 进行一次复位,初始化前复位一次
时钟一驱多lmk00304_1[write]
lmk00304配置(电路中U21)只写一次 。写9
时钟一驱多lmk00304_2[write]
lmk00304配置(电路中U21)只写一次 。写1
硬抽抽取比高16bit[write]
抽取数低16位
插值倍数选择sample_mode[write]
4位控。其中高位标志是否打开插值。后三位位控表示插值倍率,取值为:000:2倍,001:4倍,010:5倍,011:10倍,100:20倍,101:25倍,110:50倍,111:100倍
系数地址[write]
连续自然数,10位
系数低16位[write]
系数值的高位(1位)[write]
发送RAM系数前复位[write]
高有效:等于1时复位
IO_RESET[write]
ACQ_IDELAY_CTRL_RST[write]
fifo_cnt回读使能[write]
写0-1触发一次回读
fifo编程满标志[write]
采样模式设置[write]
00: GROUP A(double ch 10G),10: GROUP B(single ch1 20G),11: GROUP C(single ch2 20G)
传输处理板模块复位CLK_RESET[write]
传输处理板模块复位Data_Tx_IO_RESET[write]
上电OK 判断写入寄存器16bit数据[write]
16位数据,由此寄存器写入,由PowerOK_Readback读出,两者数据一致,表明上电OK。避免使用0x0000或0xffff数据。
共有[38]个.
ADC_SPI_回读数据[read]
锁相环HMC7044回读数据[read]
{LMX2595A_SPI_read}[read]
{LMX2595B_SPI_read}[read]
fpga_pll_locked[read]
1:表示fpga主时钟锁定
硬抽抽取比低16bit[read]
硬抽抽取比高16bit[read]
idelay_locked[read]
bit0=锁定
idelay_RST_CNTVALUEOUT[read]
idelay_REN_CNTVALUEOUT[read]
idelay_WEN_CNTVALUEOUT[read]
fifo_block数据量回读数据[read]
编译时间 L16[read]
与H16一起构成32位的整数,其含义是从1970.1.1 0.0.0开始的格林威治地点的秒数。需要做北京时间转换(时区)
编译时间 H16[read]
版本号 L16[read]
与H16一起构成32位的整数。分割为Major_Version_Number[1byte].$Minor_Version_Number[1byte].$Revision[2byte]
版本号 H16[read]
设计者 Word1[read]
共8个字节,有效字符居左。字节为ASCII码
备注 Word1[read]
共32个字节。有效字符居左,也就是高位。 字节为ASCII码。
上电OK回读[read]
正确的情况下,读回的值是PowerOK_WriteIn写入的数据
共有[35]个寄存器,其中写寄存器[33]个,读寄存器[2个].
FPGA中还有[33]个定义的寄存器在软件中没有使用。
在本文件中出现[todo...]字样的地方需要注意使用,并尽量与硬件人员一起完善。
共有[33]个.
PLL 7044 设置数据[write]
PLL 7044设置数据使能[write]
先设置0,传输数据,然后拉高
拉高,数据生效。[todo....需要多长的时间]
PLL 7043 设置数据[write]
PLL 7043设置数据使能[write]
先设置0,传输数据,然后拉高
拉高,数据生效。[todo....需要多长的时间]
PLL 同步[write]
上升沿有效
PLL 7044 复位[write]
上升沿有效
PLL 7043 复位[write]
上升沿有效
PLL 保留控制[write]
3位,位控。[todo....值怎么设置]
DMA读数长度。[write]
在每次DMA读之前,先发送,因为其他地方可能修改了此值。
字节数,需为XXX的整数倍。需要根据业务情况而设置。
DMA写数长度[write]
在每次DMA写之前,先发送,因为其他地方可能修改了此值。
字节数,需为XXX的整数倍。需要根据业务情况而设置。
DMA读数据的来源控制。[write]
在每次DMA读之前,先发送,因为其他地方可能修改了此值。
需要根据业务情况而设置。目前只有0和1选择,其中0表示读采集板的数据,1表示读DPO的数据
4094传输开始[write]
使能后将传给4094的40位数据传递给通道板的单片机
延时要满足通过SPI将40位的数据传输完毕,与传输该数据的SPI的Clock有关。
先发送40位的数据给FPGA,然后拉高,延时足够的时间,然后拉低。为上升沿有效。
4094数据低32位[write]
使能后将传给4094的44位数据 之低32位
位控,请参照通道相关文档。
4094数据高12位[write]
使能后将传给4094的40位数据 之高12位
位控,请参照通道相关文档。
DAC选择[write]
不同DAC的选择,同时还需要配置不同的端口,参见原SendDataTo5668函数
偏值电压、基线移动、参考电平、等模拟触发电平需要选择不同的DAC。
0:
DAC数据传输开始[write]
启动从FPGA到通道单片机的DAC数据传输。使用SPI传输。
上升沿开始传输。然后根据SPI的传输速度传输32位数据等待狙狗的时间,然后拉低。需要与DAC_Enable_CS一起联动。
DAC片选[write]
DAC片选。由于有多片DAC,故传输数据时,需要片选,该控制是确定片选使能。
在启动FPGA端数据传输到通道单片机之前,片选使能拉高。传输完成后拉低。
粗调控制字通道选择[write]
粗调增益控制字发送的控制。按位表示哪个通道。0表示没有通道。
先发送粗调增益控制字的值(VGA_Data),然后通过该寄存器发送哪个通道。延时。最后置0.
粗调控制字值[write]
粗调增益控制字发送的控制。按位表示哪个通道。0表示没有通道。
先发送粗调增益控制字的值(VGA_Data),然后通过该寄存器发送哪个通道。延时。最后置0.
0=无通道,1=通道1,2=通道2,4=通道3,8=通道4.以0开始的通道0,1左移。
温度传感器读数复位[write]
目前看起来是温度传感器复位用 。
上升沿有效。在读取温度数据前,先做复位处理。
DPO的顶层通道和激活通道设置
高3位表示显示在最上层的通道,001 CH1 010 CH2 011 CH3 100 CH4 000:显示优先级CH1-CH4依次降低 低4位表示激活的通道 0001:CH1 0010:CH2 0100 CH3 1000 CH4
DPX使能[write]
只有1位的状态控制。
是否使用DPX测试波形[write]
只有1位的状态控制。
FIFO读数据量[write]
软件读处理板每个FIFO的数据量
需要根据不同的FIFO深度配置,其含义应该为。。。。
PRO FIFO可编程满(发送至处理板)[write]
[todo....什么用途,该如何取值]
Reset[write]
处理板上电[write]
处理板上电
上电后可能需要一定的时间。所以,可以读取处理板上的一个固定寄存器,上电后返回固定的值。据此判断已经上电,就不需要再等待时间了。
0x55上电。上电后可能需要一定的时间。
PCIE数据源选择[write]
PCIE数据源选择,测试用。
0=正常数据,1:PCIE测试数据
系统复位[write]
从PCIE板发出的系统复位
上升沿有效
PCIE_Channel_Mode[write]
[todo....什么用途,该如何取值]
共有[2]个.
温度传感器读数[read]
右移8位后的值表示十分之一摄氏为单位的个数。
DMA FIFO是否满[read]
只有1位的状态。
共有[62]个寄存器,其中写寄存器[34]个,读寄存器[28个].
FPGA中还有[6]个定义的寄存器在软件中没有使用。
在本文件中出现[todo...]字样的地方需要注意使用,并尽量与硬件人员一起完善。
共有[34]个.
触发控制[write]
[todo....值含义]
触发模式设置[write]
设置 自动、正常、单次触发
1=Auto,0=normal,2=oneShot
预触发深度设置低16位[write]
最大44位表示的数。
其值得含义为
预触发深度设置中16位[write]
预触发深度设置高剩余位[write]
强制触发[write]
置1强制触发一次。之后应该置0
触发释抑的低16位数[write]
参见现有的代码,并补齐说明
后触发深度之低16位[write]
后触发时间以3.2ns为单位的个数
后触发深度之中16位[write]
后触发时间以3.2ns为单位的个数
后触发深度之高16位[write]
后触发时间以3.2ns为单位的个数
触发时钟源选择[write]
参照12bit源代码中的AdjSource()函数,看起来还不完整
触发位置修正数[write]
[todo...该寄存器似乎是不理想设计的。是否有存在的必要。]
其值如何确定
触发位置修正_使能[write]
[todo...该寄存器似乎是不理想设计的。是否有存在的必要。]
什么情况下使能。
触发释抑的高16位数[write]
参见现有的代码,并补齐说明
DCM其他复位[write]
0 ->0xFB 时复位
处理板软件Fifo深度[write]
[todo...值的含义是什么,怎么确定值的多少]
ACQ FIFO写使能[write]
0->1 上升沿 复位
处理板FIFO复位[write]
0 ->0x1 时复位
10M时钟选择[write]
[todo...值如何确定]
PLL设置数据使能[write]
先设置0,传输数据,然后拉高
拉高,数据生效。[todo....需要多长的时间]
PLL设置数据之低16位[write]
[todo...值怎么取]
PLL源选择[write]
[todo....值怎么确定]
数据接收延迟数设置生效[write]
拉高生效.先设置数据,然后拉高生效。[todo...需要多少时间?]
IDDR复位[write]
拉高复位
采集板上电[write]
"00" 断电, 16'hff 上电
ACQ FIFO复位[write]
0 -> 0x04 时复位
源同步数据接收IO复位[write]
[todo...从现有的代码来看,只在上电时做一次,有意义吗?]
PRO 发送数据IO复位[write]
[todo...该寄存器的用途是什么?]
上电OK 判断写入寄存器16bit数据[write]
16位数据,由此寄存器写入,由PowerOK_Readback读出,两者数据一致,表明上电OK。避免使用0x0000或0xffff数据。
共有[28]个.
读取触发状态[read]
bit3,bit0=ready,bit1=trigged,bit2=auto
编译时间 L16[read]
编译时间 H16[read]
版本号 L16[read]
版本号 H16[read]
设计者 Word1[read]
备注 Word1[read]
读取FPGA内部pll(主时钟)锁定[read]
1:locked
读取FPGA内部pll(CRYSTAL_CLK)锁定[read]
1:locked
上电OK回读[read]