横河YOKOGAWA F3YP14-0N
横河YOKOGAWA F3YP14-0N
横河YOKOGAWA F3YP14-0N
-------------------------------------------------------------------------------------------------------------------
在上电之后,单片机将图4中的电路配置在FPGA中。配置完成后,单片机发送的ASET信号由低电平跳变为高电平,使得FPGA内的PN码产生电路开始工作,并于CPU发送过来的PN码进行比较。比较结果一致就使能USER_DESIGN模块正常工作。其中PLL_BITSYS模块用来发生VERIFY_PN的位同步时钟,采用微分锁相原理实现。各种参考资料都有较多介绍,在此不再详述。
COMPARE_PN模块完成对单片机发送的伪随机码和PNMA_PRODUCER模块产生的伪随机码的比较:当两路相同,输出1,不同时输出0;若两路伪码完全匹配,则恒定输出1,使USER_DESIGN电路正常工作,否则,输出为类似于伪码的信号,使USER_DESIGN电路不能正常工作。
4 FPGA内的伪随机码产生电路
PNMA_PRODUCER模块和来产生伪随机码,采用移位寄存器实现,具体电路见图5。LPM_SHIFTREG为移位寄存器模块。移位寄存器ASET端为异步置位端,高电平有效,即ASET为高时,将初值85置入移位寄存器内,LPMSHIFTREG模块的“DIRECTION”设置为“RIGHT”即移位方向为右移。Q[39..0]表示40位移位寄存器的各个状态,SHIFTIN为串行输入,SHIFTIN为Q0、Q2、Q21、Q23四个状态异或运算的结果。

移位寄存器电路
系统加电时,单片机将ASET置为低电平,经过一个非门,变成高电平使移位寄存器处于置位状态。在配置完成后,单片机将ASET信号置为高电平,经非门使移位寄存器正常工作。利用移位寄存器电路产生伪随机码的电路非常简单,反馈逻辑也便于修改。
5 单片机验证伪码的程序
在位寻址区(20H~2FH)定义了字节变量WORD1、WORD2、WORD3、WORD4、WORD5,用来存储移位寄存器的40个状态。其中Q0对应WORD1.0,Q1对应WORD1.1……Q39对应WORD5.7。同时,在位寻址区定义了WORD6、WORD7、WORD8、WORD9,用来进行后面的反馈逻辑计算。单片机一上电,首先将ASET脚清零,同时,也将PNMA脚清零,将初值55H作为移位寄存器的初始状态,接着完成FPGA的上电配置工作。配置完成后,单片机检测来自FPGA的外部中断CONFDONE。如果配置完成,CONFDONE为高电;否则,为低电平。在检测到CONFDONE为高电平,即配置完成后,单片机将ASET脚置为1,使能FPGA内的伪码发生电路工作,单片机产生伪随机码的流程。配置完成后,首先将Q0输出到PNMA引脚,接着计算反馈逻辑输入,将参与反馈运算的几个状态运算结果存在中间变量MID_VARY中。然后,对各个状态进行右移,为了提高运算效率,使用了带进位C的字节循环右移指令。移位完成后,将MID_VARY存入Q39,再将新的Q0输出到PNMA引脚,程序循环执行产生伪随机码。
单片机核心源程序如下:
CLR ASET;单片机上电后将ASET位清0
CLR PNMA
MOV WORD1,#55h
MOV WORD2,#0
MOV WORD3,#0
MOV WORD4,#0
MOV WORD5,#0;将55H作为移位寄存器的初值PEIZHI:
……;进行FPGA的配置工作
JB CONFDONE,PNPRODUCE;根据CONFDONE判断配置是否完成
LJMP PEIZHI;否则继续配置
PNPRODUCE:SETB ASET;配置完成后,将ASET脚置1
XMQLOOP:MOV C,Q0
MOV PNMA,C;将Q0输出到PNMA引脚,作为PN码
MOV C,Q0
MOV WORD6.0,C;用WORD6单元的0位来存Q0的状态
MOV C,Q2
MOV WORD7.0,C;用WORD7单元的0位来存Q2的状态
; MOV C,Q21
MOV WORD8.0,C;用WORD8单元的0位来存Q21的状态
MOV C,Q23
MOV WORD9.0,C;用WORD9单元的0位来存Q23的状态
MOV ACC,WORD6
XRL A,WORD7
XRL A,WORD8
XRL A,WORD9;通过异或指令,计算反馈逻辑
MOV C,ACC.0;反馈逻辑为Qin=Q0;
XOR Q2 XOR Q21 XOR Q23
MOV MID_VARY,C;将运算后的状态存到MID_VARY中右移运算
MOV ACC,WORD1
RRC A;移位Q7~Q0
MOV WORD1,A;移位后,保存到WORD1单元中
MOV ACC,WORD2
RRC A;移位Q15~Q8
MOV WORD2,A;移位后,保存到WORD2单元中
MOV Q7,C;将Q8的值赋到Q7
MOV ACC,WORD3
RRC A;移位Q23~Q16
MOV WORD3,A;移位后,保存到WORD3单元中
MOV Q15,C;将Q16的值赋到Q15
MOV ACC,WORD4
RRC A;移位Q31~Q24
MOV WORD4,A;移位后,保存到WORD4单元中
MOV Q23,C;将Q24的值赋到Q23
MOV ACC,WORD5
RRC A;移位Q39~Q32
MOV WORD5,A;移位后,保存到WORD5单元中
MOV Q31,C;将Q32的值赋到Q31
MOV C,MID_VARY;将前面反
馈计算的值赋给Q39
MOV Q39,C
LJMP XMALOOP ;继续产生下一代PN码元
6 其它加密方法介绍及比较
对SRAM工艺的FPGA进行加密,除了可以利用单片机实现外,还可以用E2PROM工艺的CPLD
实现。与用单片机实现相比,利用CPLD的优点在于可实现高速伪码,但要在硬件电路中增加一块CPLD芯片,使整个硬件电路复杂化,增加了成本。本文提供的加密方法考虑到配置完成后单片机处于空闲状态,此时利用单片机进行加密,不需要增加任何电路成本,使得整个系统硬件结构十分简洁。本文提出采用长伪随机码来实现加密。如果采用其它的算法产生验证信息,并增加单片机与FPGA工作时信息实时交互,使得获取验证信息的难度足够大,也可以达到类似的加密效果。
ABB YB560103-CH
ABB YYT 102C
ABB A185-30-11-84
ABB 1FT3101-5AZ21-9-Z
ABB MPS-C-3 716513A00
ABB 3HAB2241-1
ABB EH260C-1
ABB EH260C-1
ABB EH260C-1
ABB ACS501-015-4-00P2
ABB ACS401601135
ABB DSQC2498
ABB EHW-250
ABB 3HAB3365-001
ABB 6004BZ10300
ABB 50VM1000
ABB ACS601-0020-4-S00B1200801
ABB 3HNE 00025-1/16 #29377
ABB 3HNE 00025-1/16 #29377
ABB L 3HAA-2121-2
ABB 3HAB 5845-1
ABB 57775840
ABB IP55
ABB MPS-C 2000
ABB CAARS05HT
ABB ACS601-0011-4-000B1200801
ABB DSQC325 3HAB2241
ABB YT212001-AL
ABB PST60-600-70
ABB D05010/R0004
ABB GNT2009454R0004/05MA22G
ABB YB560101-SV
ABB 5716075-E/3
ABB YB560103-CC
ABB 57160001-ACA
AB 1326AB-B520-FS2K5L
ABB YT213001-BB
AB 1326AB-B515E-21-K5
ABB YB560103-CE
ABB 3HAA3563-AGA/2
ABB ACS601-0020-2-S00B1200001
ABB R3HAC10604-1
AB 1326AB-B515-GS2K5L
ABB 264DCFBDFSSSA4A1V2E4N2
ABB 3HAB6372-1
ABB MK14A-X020
ABB PS60/4-50-P-LSS-3823
ABB 61001395
ABB SK827085-AF
ABB 3HAC17971-1
ABB 3HAC36191
ABB 3HAB 6425-1
ABB ACS601-0016-4-000B1200800
ABB 1922RA00103A
ABB ACS501-006-3-00P20000D
ABB ACS601-0016-2-S00B1200801
ABB 57160001K
ABB REV-EH175-120V
AB 1326AB-B515G-21
ABB YYT-102C
ABB ACH 500
ABB VOY-12
ABB AM54072
ABB 3HAB 5960-1
ABB A210-30-11
AB 1326AB-B515E-21
ABB 3HAB 2213-1/1
ABB 3BSE030220R1
ABB 3HAB8801-1/2B
ABB 980 006 R109
ABB 3GAA182111-BDA
ABB S6NQ600BW
ABB S6HQ600EW
ABB ACS143-4K1-3
ABB 5761806-0D
ABB PP07512HS
ABB PP07512HS
ABB RF615 3BHT100010R1
ABB 2000 DAI02
ABB 6231BP10830C-B
ABB 3HAC16917-1
ABB 3BSE008508R1
ABB 3BHB003387R0101
ABB 3ASD573001A1 YPP110A
AB 1397-B050N
AB 1394-AM75 MODULE AXIS15KW
AB 1336F-MCB-SP2D
AB CAT-1201-HA2
ABB LC42TL R0012
ABB V05402A00
ABB ACH550-UH-012A-?4
ABB AINT12C
ABB DCF504A0050
NP53*A
NP53*B
NP53*C
51402573-150
DSAO130
6DD1683-OCD0
6DD1683-0CC0
6DD1682-0CH2
6DD1681-0CA2
6DD1661-0AB1
SST-PB3-CLX
SST-SR4-CLX
FBM233
SR511
GJR5252100R0101 07KT94
GJR5252100R0161 07KT94D
GJR5252100R0201 07KT94
GJR5252100R0261 07KT94
GJR5252100R3261 07KT94
5136-DN-PC
C810 2GF1180-8CA
CDIO 16/16-0,5-1131 BERGHOF ID740
Cognex VM16A 203-0075-C VPM-5118-32M
ATEQ MF5 F520
Schneider TSXDST3292
安川YASKAWA ADE-4C1C
YASKAWA CACRSR30TZ6SME
Yaskawa DR2-A5
YASKAWA USAREM-05CFJ11
YASKAWA 4K171-841-3
YASKAWA CACR-SR44BB1AM-?Y8
YASKAWA E7BVB014X
YASKAWA CACR-SR02AB1ER
YASKAWA XCAP04
YASKAWA UCV000361
YASKAWA CACR-SR03AC1ER
YASKAWA CACR-SR02AC1ER
YASKAWA ETC507606-S3305
YASKAWA SGMAH-02AAF41
YASKAWA CACR-SR02AB1ER
YASKAWA CIMR-F55AS3
YASKAWA CACR-SRA5AB1ER
YASKAWA CIMR-SVJ-37AA
YASKAWA CIMR-F7U43P7
YASKAWA JANCD-MEW02-1
YASKAWA CIMR-P5M25P51F
YASKAWA DS074
YASKAWA CIMR-PCU40P4
YASKAWA CIMR-PCU40P4
YASKAWA CACR-05-TF2ES-D?F
YASKAWA SGDB-20ADGY8
YASKAWA JEPMC-PL200
YASKAWA CIMR-G7U41P5
YASKAWA CIMR-V7NU40P7
YASKAWA SGMG-13ASA
YASKAWA CIMR-XCBAB0P4
YASKAWA CACR-SR03AD1-KR
YASKAWA DR2-01AC
YASKAWA CACR-SR10SZ1SFY?90
YASKAWA SGM-01U3B2L
YASKAWA SGM-01U3B2CL
YASKAWA JEPMC-CP200
YASKAWA CACR-IR-15SFB
YASKAWA SGDB-03ADM
YASKAWA USASEM-08-HG21
YASKAWA SGMGH-13D2A61
YASKAWA YS-13
YASKAWA JANCV-MFC05
YASKAWA DF8101720-D1
YASKAWA DE9407237-1