
IC693MDL940、IC693MDL645
GEIC693MDL940、IC693MDL645FPGA内工作电路在上电之后,单片机将图4中的电路配置在FPGA中。配置完成后,单片机发送的ASET信号由低电平跳变为高电平,使得FPGA内的PN码产生电路开始工作,并于CPU发送过来的PN码进行比较。比较结果一致就使能USER_DESIGN模块正常工作。其中PLL_BITSYS模块用来发生VERIFY_PN的位同步时钟,采用微分锁相原理实现。各种参考资料都有较多介绍,在此不再详述。COMPARE_PN模块完成对单片机发送的伪随机码和PNMA_PRODUCER模块产生的伪随机码的比较:当两路相同,输出1,不同时输出0;若两路伪码完全匹配,则恒定输出1,使USER_DESIGN电路正常工作,否则,输出为类似于伪码的信号,使USER_DESIGN电路不能正常工作。4FPGA内的伪随机码产生电路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引脚,程序循环执行产生伪随机码。单片机核心源程序如下:CLRASET;单片机上电后将ASET位清0CLRPNMAMOVWORD1,#55hMOVWORD2,#0MOVWORD3,#0MOVWORD4,#0MOVWORD5,#0;将55H作为移位寄存器的初值PEIZHI:……;进行FPGA的配置工作JBCONFDONE,PNPRODUCE;根据CONFDONE判断配置是否完成LJMPPEIZHI;否则继续配置PNPRODUCE:SETBASET;配置完成后,将ASET脚置1XMQLOOP:MOVC,Q0MOVPNMA,C;将Q0输出到PNMA引脚,作为PN码MOVC,Q0MOVWORD6.0,C;用WORD6单元的0位来存Q0的状态MOVC,Q2MOVWORD7.0,C;用WORD7单元的0位来存Q2的状态;MOVC,Q21MOVWORD8.0,C;用WORD8单元的0位来存Q21的状态MOVC,Q23MOVWORD9.0,C;用WORD9单元的0位来存Q23的状态MOVACC,WORD6XRLA,WORD7XRLA,WORD8XRLA,WORD9;通过异或指令,计算反馈逻辑MOVC,ACC.0;反馈逻辑为Qin=Q0;XORQ2XORQ21XORQ23MOVMID_VARY,C;将运算后的状态存到MID_VARY中右移运算MOVACC,WORD1RRCA;移位Q7~Q0MOVWORD1,A;移位后,保存到WORD1单元中MOVACC,WORD2RRCA;移位Q15~Q8ABBProconticCS31Ein-/AusgabemodulICS016N1&Modul...ABBProconticCS31Ein-/AusgabemodulICSA04B5&Modul...ABBProconticCS31GJR5251300R1101ZentraleinheitABBDCS402.0680REV.A.1FrequenzumrichterABBACS50-01E-09A8-2ACS5001E09A82ABBGJV3072402R107KR240ABBGJR5252100R226107KT94C-SABBGJR5253100R226007KT98-SH1ABBGJR5250800R010107AB90-SDABBGJR5250900R020207DI90-SD1ABBGJR5253100R026007KT98GABBGJR5253100R016007KT98GABBSwitchLineOT16E3LastschalterABBGTU0150GTU0150ABBSOT15M-B45N-C1-PKSSOT15MB45NC1PKSABBStotzMotorschutzschalter1SVR430710R0200ABBSOT15M-B45N-C1-KSSOT15MB45NC1KSABBSOT15M-B45N-C1-PKSSOT15MB45NC1PKSABBF804B-63/0.5AP-RF804B630.5APRABBHESG324120324120R40ABBUN0901dUN0901dVersion1ABBMS325-6.3+HKF-11MotorschutzschalterABBMS116-4.0MS116-4.0MotorschutzschalterImatronicFerrocontrolFIPC1.2-CT-426B-010-C2ABBPSA30PSA30SoftstarterABBLM041-CE18RDCLM041CE18RDCABBDrivesACS60100093FrequenzumrichterABB1SBH143001R8853NL53EHilfschützABBA7522KWBenderSB478SB47693083002BerührungsspannungsrelaisABBProcessingUnitsS200TB3SS200TB3SS200TB3sealedABBProcessingUnits200-BPN200BPNsealedABBDrivesACS60100053FrequenzumrichterABBProconticCS31Ein-/Ausgabemod?ulICS016N1&Modul...?ABBProconticCS31Ein-/Ausgabemod?ulICSA04B5&Modul...?ABBProconticCS31GJR5251300R1101Zentraleinheit?ABBDCS402.0680REV.A.1Frequenzumricht?er?ABBACS50-01E-09A8-?2ACS5001E09A82?ABBGJV3072402R107KR240?ABBGJR5252100R226107KT94C-S?ABBGJR5253100R226007KT98-SH1?ABBGJR5250800R010107AB90-SD?ABBGJR5250900R020207DI90-SD1?ABBGJR5253100R026007KT98G?ABBGJR5253100R016007KT98G?ABBSwitchLineOT16E3Lastschalter?ABBGTU0150GTU0150?ABBSOT15M-B45N-C1-?PKSSOT15MB45NC1PKS?ABBStotzMotorschutzscha?lter1SVR430710R0200?ABBSOT15M-B45N-C1-?KSSOT15MB45NC1KS?ABBSOT15M-B45N-C1-?PKSSOT15MB45NC1PKS?ABBF804B-63/0.5AP-?RF804B630.5APR?ABBHESG324120324120R40?ABBUN0901dUN0901dVersion1?ABBMS325-6.3+HKF-11Motorschutzscha?lter?ABBMS116-4.0MS116-4.0Motorschutzscha?lter?ImatronicFerrocontrolFIPC1.2-CT-426B-010?-C2?ABBPSA30PSA30Softstarter?ABBLM041-CE18RDCLM041CE18RDC?ABBDrivesACS60100093Frequenzumricht?er?ABB1SBH143001R8853NL53EHilfschütz?ABBA7522KW?BenderSB478SB47693083002Berührungsspann?ungsrelaisABBProcessingUnitsS200TB3SS200TB3SS200TB3sealed?ABBProcessingUnits200-BPN200BPNsealed?ABBDrivesACS60100053Frequenzumricht?erAEGMicroverterD10.5/380V-2Frequenzumricht?erSachNr...?AEGMicroverterD2.5/380-2029143705Frequenzumricht?...?AEGMicroverterD16/380029.143710?AEGModiconBIK114BIK114?AEGDTA200DTA200?AEGADU206ADU206?AEGDNP205DNP205?AEGALU202ALU202?AEGMbs25Mbs25Motorschutzscha?lter?AEGT-SV1TSV1?AEGMicroverterD25/380?AEGModiconBITBUS-ReseiverDEA106?AEGModiconSFB-masterBIK116?AEGModiconDTA200?AEGModiconDTA201?AEGModiconA120NUL202?AEGModiconDAP212?AEGTHYRO-PLBA?AEGTHYRO-P2P400-280HFASM2P400280HFASM?AEGTHYRO-P2P400-110HASM1P400110HASM?AEGTHYRO-P2P400-75HASM1P40075HASM?AEGTHYRO-P1P400-75H1P40075H?AEGModiconADU205424-270397?AEGModiconDAP216424-270385?AEGModiconDEP216424-244630?AEGBLR-MQBLRMQBlindleistungsr?egler?AEGElfaE833Pol.?AEGA020/ERW/220V7628-200594.09110/220V;50-60Hz?AEGSchneiderOPC456SP310TouchpanelOperatorPanel?AEGLasttrennschalt?erLTSIST167LtSiSt167AEGMT23C-1041-000MT23C-1041-000ServoMotor?AEGDEP2166728-042.244630?AEGKPE141-16355-042.703946ETHERN.Controller?AEGMicroverter2.8/230VFrequenzumricht?er?AEGMicroverter2.8/230VFrequenzumricht?er?AEGTSXA250DEP112?AEGALU154-1ALU154-1ModiconA250?AEGModiconALU131ALU131?AEGModiconSC8128SC8128128kb?AEGModiconSCU150SCU150?Netzger?tfürAEGFrequenzumricht?erNG3-690/EZO95W?PowerboardAEGFrequenzumricht?erT56030155045?AEGMINISEMI380/36+SDFrequenzumricht?er)