如何使用CPLD进行时钟分频 (如何使用cPanel空间管理你的网站)

如何使用cPanel空间管理你的网站

如何使用CPLD进行时钟分频

CPLD,即复杂可编程逻辑器件,是一种集成电路。它是由可编程逻辑器件(PLD)和时序器件(PSD)组成的。CPLD具有可编程逻辑门阵列、可编程功能块以及可编程握手信号。其中,可编程逻辑门阵列用于实现复杂逻辑功能,可编程功能块则用于实现时序控制功能。CPLD被广泛应用于数字系统、时钟分频等领域。时钟分频是指将输入时钟信号的频率降低到所需的频率。在数字系统中,时钟信号在各个组件之间起到同步的作用。时钟分频是数字系统中常用的技术,用于将高频时钟信号降低到低频或者可控频率,以满足系统需求。CPLD可以用来进行时钟分频。下面将详细说明如何使用CPLD进行时钟分频:1. 确定所需的输出频率。假设需要将输入频率降低为1/10。2. 设计并实现时钟分频的电路。使用CPLD进行时钟分频的关键是使用可编程逻辑门阵列和可编程功能块。根据实际需求,设计适当的逻辑电路,将输入时钟信号分频为所需频率。3. 进行CPLD编程。编程CPLD是将逻辑电路设计的结果烧录到CPLD芯片中。通常,使用专门的CPLD编程器进行编程。将设计好的逻辑电路烧录到CPLD芯片后,CPLD芯片将按照设计好的逻辑进行工作。4. 连接电路。将输入时钟信号和输出时钟信号连接到CPLD芯片的相应引脚上。5. 调试和测试。将输入时钟信号接入CPLD芯片,并观察输出时钟信号的频率。调试和测试过程中,可以通过改变设计的逻辑电路来调整输出时钟信号的频率。通过以上步骤,可以成功使用CPLD进行时钟分频。CPLD具有可编程性的优势,能够灵活适应不同的需求。同时,使用CPLD进行时钟分频可以降低系统的功耗和复杂性,提高系统的可靠性和稳定性。使用CPLD进行时钟分频是一种常用的技术,可以将高频输入时钟信号分频为所需的低频输出时钟信号。通过设计合适的逻辑电路,并编程到CPLD芯片中,可以实现时钟分频的功能。CPLD的可编程性使得它具有广泛的应用前景,在数字系统等领域具有重要地位。


如何实现CPLD计数功能的调试??

一、实验目的 1. 熟悉CPLD的开发软件的基本使用。2. 掌握CPLD逻辑电路设计方法。3. 会用逻辑分析仪进行数字电路的测试分析。 二、实验任务和内容1. 在CPLD中设计一个多位计数器电路,设计要求为: (1)6位十进制加法/减法计数器,运行过程中可改变加法或减法;(2)输入计数信号频率最高1MHz,信号电平为0~5V的脉冲信号。(3)6位数码管动态扫描显示,显示亮度均匀,不闪烁。(4)有手动清零按键。2.对设计的电路进行软件仿真3.计数器电路的CPLD下载、实验调试。4.使用虚拟逻辑分析仪进行调试和测试 三、实验器材 1. 1.SJ-8002B电子测量实验箱 1台 2.计算机(具有运行windows2000和图形化控件的能力 1台 3.函数发生器 1台 4. SJ-7002 CPLD实验板 1块 5 . 短接线若干 四、实验原理 4.1 CPLD介绍 可编程逻辑器(PLD)是70年代发展起来的一种划时代的新型逻辑器件,一般来说,PLD器件是由用户配置以完成某种逻辑功能的电路。80年代末,美国ALTERA和XILINX公司采用E2CMOS工艺,分别推出大规模和超大规模的复杂可编程逻辑器件(CPLD)和现场可编程逻辑门阵列器件(FPGA),这种芯片在达到高度集成度的同时,所具有的应用灵活性和多组态功能是以往的LSI/VLSI电路无法比拟的。到90年代,CPLD/FPGA发展更为迅速,不仅具有电擦除特性,而且出现了边缘扫描及在线编程等高级特性。另外,外围I/O模块扩大了在系统中的应用范围和扩展性。较常用的有XILIN X公司的EPLD和ALTERA及LATTICE公司的CPLD。 CPLD/FPGA的设计开发采用功能强大的EDA工具,通过符合国际标准的硬件描述语言(如VHDL或VERILOG-HDL)来进行电子系统设计和产品开发,开发工具的通用性,设计语言的标准化以及设计过程几乎与所用的CPLD/FPGA器件的硬件结构没有关系,所以设计成功的逻辑功能软件有很好的兼容性和可移植性,开发周期短;易学易用,开发便捷。 尽管CPLD、FPGA以及其它类型的PLD器件的结构各有其特点和长处,但是概括起来它们都是由三大部分组成的:(1)一个二维的逻辑块阵列,构成器件的逻辑组成核心;(2)输入/输出块(3)连接逻辑块的互联资源,连线资源由各种长度的线段组成,也包括用于连接逻辑块之间,逻辑块与输入输出部分的可编程连接开关。 本CPLD实验电路板选用ALTERA公司的EPM7128SLC84器件,EPM7128SLC84的特点为:84引脚Pin,内部有128个宏单元、2500个等效逻辑门、15ns的速度、PLCC84封装形式。除电源引脚、地线引脚、全局控制引脚和JTAG引脚外,共提供了64个可用I/O脚,这些引脚可以任意配置为输入、输出和双向方式。图1 CPLD芯片EPM7128SLC84外形图 4.2 CPLD(FPGA)器件的设计和验证步骤 一般可分为设计输入、编译、功能仿真和时延仿真、器件下载(编程)、硬件电路三个设计步骤以及相应的功能仿真、时序仿真和器件测试三个设计验证过程。 (1).设计输入:设计输入有多种方式,目前最常用的有电路图和硬件描述语言两种,对于简单的设计,可采用原理图的方式设计,对于复杂的设计可使用原理图或硬件描述语言(Verilog、AHDL、VHDL语言),或者两者混用,采用层次化设计方法,分模块层次地进行描述。原理图设计方法主要是按照数字系统的功能采用具体的逻辑器件组合来实现的,把这些由具体器件实现逻辑功能的电路图输入到软件当中。这种设计方法比较直观。硬件描述语言设计方法主要把数字系统的逻辑功能用硬件语言来描述 (2)编译:编译前先选择器件的系列、型号,分配输入/输出管脚进行管脚,然后开始编译编译是指从设计输入文件到熔丝图文件(CPLD)或位流文件(FPGA)的编译过程。在该过程中,编译软件自动地对设计文件进行综合、优化,并针对所选中的器件进行映射、布局、布线、产生相应的熔丝图或位流数据文件。 (3)仿真:分为功能仿真(Functional)和时延(Timing)仿真:编译成功的设计并不一定完全正确,可通过仿真来验证电路是否达到设计要求,基本思路是首先用波形编辑器编辑仿真文件,给输入加载不同的激励信号,然后运行仿真器,产生对应的输出,根据输入和输出的关系,以此判别设计的正确性。 (4)器件编程:器件编程就是将熔丝图文件或位流数据文件下载到相应的CPLD或FPGA器件中。 (5)系统硬件电路测试图2 CPLD设计流程 4.3 设计软件的使用 对CPLD的设计可使用ALTERA公司的MAX-PLUSⅡ或Quartus Ⅱ,设计的主要步骤为: (1)创建或打开一个工程。 (2)原理图输入方式:新建一个图形文件,输入符号(代表子模块或元件、输入输出引脚),连线,存盘。如图4所示为采用两片74190级联的两位十进制计数器电路,文件名为Z74190.gdf。 (3)文本输入方式:新建一个文本文件,输入HDL语言编写的电路,存盘。 (4)选择芯片为CPLD实验电路板选用的EPM7128SLC84器件,分配引脚。 (5)波形仿真,首先新建空白的波形文件,导入本设计电路的输入输出节点,给输入节点按照需要指定时钟信号和高低电平,开始仿真,得到结果,再分析结果。如图5为Z74190.gdf的仿真文件波形。 (6)CPLD程序的下载:我们采用的是并口下载电缆ByteBlaster,它可以对MAX7000S系列进行在线编程。该下载电缆具有以下几个部分:与PC机并行口相连的25针插座头、与PCB板插座相连的10针插头。其示意图如3所示。图 3 并行电缆下载示意图 设计举例:图 4和图 5分别是用原理图方式设计的2位十进制计数器的原理图和软件仿真波形图。 图4两位十进制计数器电路图 图11-5 两位十进制计数器电路仿真波形图 4.4 CPLD实验电路板原理和虚拟逻辑分析仪使用 实验电路板的组成和虚拟逻辑分析仪的使用在本实验指导书的“实验四 逻辑分析仪的原理和应用”中已作了说明,请读者参考。图6 为CPLD板的详细电路图。CPLD与62芯插座定义表见表1和CPLD可供用户自定义的引脚见表2。使用CPLD板的1.000MHz的晶振时钟,需放置CPLD板上S1短路块位置在右面。 表1 CPLD和62芯插座连线引脚定义 引脚名称 CPLD芯片引脚 62芯插座引脚 说明 引脚名称 CPLD对应脚 62芯插座引脚 说明 DO0 P40 16 连接逻辑分析仪的24个输入通道 DO24 P63 28 系统保留 DO1 P36 48 DO25 P76 60 DO2 P41 17 DO26 P64 29 DO3 P44 49 DO27 P75 61 DO4 P45 18 DO28 P68 30 DO5 P46 50 VCC P3,P13,P26,P3P43,P5,P66,P78 31,62 +5V电源 DO6 P48 19 DO7 P49 51 DO8 P50 20 DO9 P51 52 GND P1,P7,P19,P32,P42,P47,P59,P72,P82,P84 13,44 电源地 DO10 P55 21 DO11 P52 53 DO12 P54 22 DO13 P65 54 DO14 P57 23 CPLD时钟源 sourceCLK P83 45 由S1短路 选择接 CPLD-CLK1 DO15 P67 55 DO16 P56 24 DO17 P69 56 DO18 P58 25 outsideclk P39 15 选择接(P83) DO19 P70 57 allCLR P35 47 系统总清零 DO20 P61 26 outside_tri P37 14 外部触发 DO21 P73 58 DO22 P60 27 DO23 P74 59表2 用户可用的CPLD自定义I/O引脚 P4 P5 P6 P8 P9 P10 P11 P15 P16 P17 P18 P20 P21 P22 P24 P25 P27 P28 P29 P30 P31 P77 P79 P80 P81图6 CPLD实验板电路原理图 五、设计指导: 设计和调试的过程是:①任务分析,层次分解,得到顶层设计框图,大致确定每个子模快(子电路)的功能、输入和输出;②子模快电路设计和软件仿真;③完成顶层电路设计,顶层仿真;④分配引脚,下载,连线和调试。 软件仿真注意尽量给定符合实际电路工作的输入电平、时钟,仿真最小间隔不小于20ns,仿真时间长短适中。 5.1 设计任务分析 根据设计任务,可分为两大部分:多位计数器电路和计数结果动态显示电路。根据CPLD电路的层次化设计功能,设计出如图7所示的顶层设计框图。 6位十进制的计数器对输入的脉冲计数,有加减计数控制和清零计数值控制,输出6位十进制计数值,每位都用4位BCD码表示,共有24根线。 根据动态扫描显示的需要,必须设计一个6位BCD选1的多路数据选择器,输出的一位BCD码(4根线)送给BCD-七段译码器译成段信号,从CPLD输出给数码管的7段。同时多路数据选择器的控制选通信号需要3根,必须与6位数码管的位选信号同步。 位选信号来自电路板的时钟(1MHz)分频,在用译码器译码(每次只能选中一个数码管)。要保证多位显示均匀和不闪烁,请计算和设计分频的频 电路的设计均有原理图设计和HDL语言文本设计两种方法,根据电路的特点和各人的情况,自己选用。 对每个子模快进行软件仿真,先创建波形文件,设定时间间隔和解释时间,编辑输入波形,运行仿真,分析结果是否正确。若不正确,则修改设计,重新编译后,再仿真,直到正确为止。 (1)6位十进制的计数器子模块设计: 没有现成电路可用,所以必须自己设计。 为什么不选用二进制计数器?(从显示要求、二进制转换为BCD电路的难易等考虑) 设计方法一:选用6个1位的可逆带清零十进制计数器级联得到。注意进位/借位信号的时序。 设计方法二:使用HDL语言编程,注意同时满足十进制、加、减的进位和借位。 (2)6位BCD选1的多路数据选择器设计: 没有现成电路可用,所以必须自己设计。 可选用多个数据选择器来组合。要求控制选通信号需要3根,按000-001-010-011-100-101变化,只有6个状态。 (3)BCD-七段译码器设计: 有现成电路选用,注意共阴和共阳数码管的区别。 位选信号产生 ①位选译码:每次选中一个,可选用什么译码器?注意位选电平是高电平有效还是低电平有效。 ②位选控制:要求为6个状态,设计电路可采用状态机的方法,但仔细分析6个状态之间的关系后,可得出符合_________的计数器。 设计方法:语言和图形均可。 分频电路:位选信号来自电路板的时钟(1MHz)分频,要保证多位显示均匀和不闪烁,先计算分频电路要求的输出频率,在设计分频电路。可使用计数器分频。 5.3分配引脚和编译、下载 引脚分配要满足CPLD电路板上已有的连线情况,把主要的输入信号和重要的中间结果同时分配给逻辑分析仪的输入通道A0~A23,可以利用逻辑分析仪进行测试,观察到电路实际的内部工作时序。每次分配引脚后,需重新编译后,再下载。 六、调试和测试结果 6.1实验硬件连接 根据各人设计的计数器电路和分配的引脚连线,计数器输入控制信号连接开关和按键,计数脉冲信号连接到函数发生器的TTL(CMOS)输出端。计数器的输出位选分别连接6个数码管的为选端L1~L6注意,左边的数码管为低位,7段信号分别连接。 6.2调试和测试 按照以下顺序对计数器电路进行测试,如不正确,请按下面步骤检查:连线——引脚分配——CPLD电路设计。改正错误,再测试,若是CPLD电路错误,需重新编译和重新下载。 ①检查动态扫描电路 数码管7段信号全部直接接地,位选分别连接CPLD输出位信号,这时,6个数码管应该稳定显示“888888”。 ②检查加法计数器是否正确 连接数码管7段信号到CPLD指定输出引脚,位选分别连接CPLD输出位信号,选计数器输入连接函数发生器的TTL电平信号输出端,设置函数发生器为方波,频率为1~2Hz,加/减控制信号输入“加”有效,观察数码管的显示,应是加1计数,更新频率即为输入信号频率。提高输入信号频率,使计数更新快,检查计数器进位和高位计数是否正确。 ③检查减法计数器是否正确 加/减控制信号输入“减”有效,测试方法同上。 ④检查“清零”控制是否正确。

如何实现单片机与CPLD通讯

1。可以用CPLD模拟一个RS232串口,利用这个串口与单片机通信下面是用VHDL写的一个串口程序,你可以根据你的通信协议对这个程序略作修改即可使用– 本模块的功能是验证实现基本的串口通信的功能。—- 程序实现了一个收发一帧10个bit(即无奇偶校验位)的串口控–制器,10个bit是1位起始位,8个数据位,1个结束–位。串口的波特律由程序中定义的div_par参数决定,更改该参数可以实–现相应的波特率。程序当前设定的div_par 的值是0x104,对应的波特率是–9600。用一个8倍波特率的时钟将发送或接受每一位bit的周期时间–划分为8个时隙以使通信同步.:串口处于全双工工作状态,–字符串(串口调试工具设成按ASCII码接受方式);library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY UART IS PORT ( clk : IN std_logic; rst : IN std_logic; rxd : IN std_logic; –串行数据接收端 txd : OUT std_logic; –串行数据发送端 en : OUT std_logic; — 数码管使能 seg_data : OUT std_logic_vector(7 DOWNTO 0); –数码管数据 key_input : IN std_logic –按键输入 ); END UART;ARCHITECTURE arch OF UART IS–//////////////////inner reg//////////////////// SIGNAL div_reg : std_logic_vector(15 DOWNTO 0);–分频计数器,分频值由波特率决定。分频后得到频率8倍波特率的时钟 SIGNAL div8_tras_reg : std_logic_vector(2 DOWNTO 0);–该寄存器的计数值对应发送时当前位于的时隙数 SIGNAL div8_rec_reg : std_logic_vector(2 DOWNTO 0); –寄存器的计数值对应接收时当前位于的时隙数 SIGNAL state_tras : std_logic_vector(3 DOWNTO 0); — 发送状态寄存器 SIGNAL state_rec : std_logic_vector(3 DOWNTO 0); — 接受状态寄存器 SIGNAL clkbaud_tras : std_logic; –以波特率为频率的发送使能信号 SIGNAL clkbaud_rec : std_logic; –以波特率为频率的接受使能信号 SIGNAL clkbaud8x : std_logic; –以8倍波特率为频率的时钟,它的作用是将发送或接受一个bit的时钟周期分为8个时隙 SIGNAL recstart : std_logic; — 开始发送标志 SIGNAL recstart_tmp : std_logic; –开始接受标志 SIGNAL trasstart : std_logic; SIGNAL rxd_reg1 : std_logic; –接收寄存器1 SIGNAL rxd_reg2 : std_logic; –接收寄存器2,因为接收数据为异步信号,故用两级缓存 SIGNAL txd_reg : std_logic; –发送寄存器 SIGNAL rxd_buf : std_logic_vector(7 DOWNTO 0);–接受数据缓存 SIGNAL txd_buf : std_logic_vector(7 DOWNTO 0);–发送数据缓存 SIGNAL send_state : std_logic_vector(2 DOWNTO 0);–每次按键给PC发送”Welcome”字符串,这是发送状态寄存器 SIGNAL cnt_delay : std_logic_vector(19 DOWNTO 0);–延时去抖计数器 SIGNAL start_delaycnt : std_logic; –开始延时计数标志 SIGNAL key_entry1 : std_logic; –确定有键按下标志 SIGNAL key_entry2 : std_logic; –确定有键按下标志 –////////////////////////////////////////////// CONSTANT div_par : std_logic_vector(15 DOWNTO 0) := “0000000100000100”; –分频参数,其值由对应的波特率计算而得,按此参数分频的时钟频率是波倍特率的8倍,此处值对应9600的波特率,即分频出的时钟频率是9600*8 SIGNAL txd_xhdl3 : std_logic; BEGIN en <=’0′ ;–7段数码管使能信号赋值 txd <= txd_xhdl3; txd_xhdl3 <= txd_reg ; PROCESS(clk,rst) BEGIN IF (NOT rst = ‘1’) THEN cnt_delay <= “00000000000000000000”; start_delaycnt <= ‘0’; ELSIF(clk’EVENT AND clk=’1′)THEN IF (start_delaycnt = ‘1’) THEN IF (cnt_delay /= “11000011010100000000”) THEN cnt_delay <= cnt_delay + “00000000000000000001”; ELSE cnt_delay <= “00000000000000000000”; start_delaycnt <= ‘0’; END IF; ELSE IF ((NOT key_input=’1′) AND (cnt_delay = “00000000000000000000”)) THEN start_delaycnt <= ‘1’; END IF; END IF; END IF; END PROCESS; PROCESS(clk,rst) BEGIN IF (NOT rst = ‘1’) THEN key_entry1 <= ‘0’; ELSIF(clk’EVENT AND clk=’1′)THEN IF (key_entry2 = ‘1’) THEN key_entry1 <= ‘0’; ELSE IF (cnt_delay = “11000011010100000000”) THEN IF (NOT key_input = ‘1’) THEN key_entry1 <= ‘1’; END IF; END IF; END IF; END IF; END PROCESS; PROCESS(clk,rst) BEGIN IF (NOT rst = ‘1’) THEN div_reg <= “0000000000000000”; ELSIF(clk’EVENT AND clk=’1′)THEN IF (div_reg = div_par – “0000000000000001”) THEN div_reg <= “0000000000000000”; ELSE div_reg <= div_reg + “0000000000000001”; END IF; END IF; END PROCESS; PROCESS(clk,rst) –分频得到8倍波特率的时钟 BEGIN IF (NOT rst = ‘1’) THEN clkbaud8x <= ‘0’; ELSIF(clk’EVENT AND clk=’1′)THEN IF (div_reg = div_par – “0000000000000001”) THEN clkbaud8x <= NOT clkbaud8x; END IF; END IF; END PROCESS; PROCESS(clkbaud8x,rst) BEGIN IF (NOT rst = ‘1’) THEN div8_rec_reg <= “000”; ELSE IF(clkbaud8x’EVENT AND clkbaud8x = ‘1’) THEN IF (recstart = ‘1’) THEN –接收开始标志 div8_rec_reg <= div8_rec_reg + “001”;–接收开始后,时隙数在8倍波特率的时钟下加1循环 END IF; END IF; END IF; END PROCESS; PROCESS(clkbaud8x,rst) BEGIN IF (NOT rst = ‘1’) THEN div8_tras_reg <= “000”; ELSE IF(clkbaud8x’EVENT AND clkbaud8x = ‘1’) THEN IF (trasstart = ‘1’) THEN div8_tras_reg <= div8_tras_reg + “001”;–发送开始后,时隙数在8倍波特率的时钟下加1循环 END IF; END IF; END IF; END PROCESS; PROCESS(div8_rec_reg) BEGIN IF (div8_rec_reg = “111”) THEN clkbaud_rec <= ‘1’; —在第7个时隙,接收使能信号有效,将数据打入 ELSE clkbaud_rec <= ‘0’; END IF; END PROCESS; PROCESS(div8_tras_reg) BEGIN IF (div8_tras_reg = “111”) THEN clkbaud_tras <= ‘1’; –在第7个时隙,发送使能信号有效,将数据发出 ELSE clkbaud_tras <= ‘0’; END IF; END PROCESS; PROCESS(clkbaud8x,rst) BEGIN IF (NOT rst = ‘1’) THEN txd_reg <= ‘1’; trasstart <= ‘0’; txd_buf <= “00000000”; state_tras <= “0000”; send_state <= “000”; key_entry2 <= ‘0’; ELSE IF(clkbaud8x’EVENT AND clkbaud8x = ‘1’) THEN IF (NOT key_entry2 = ‘1’) THEN IF (key_entry1 = ‘1’) THEN key_entry2 <= ‘1’; txd_buf <= “01110111”; –“w” END IF; ELSE CASE state_tras IS WHEN “0000” => –发送起始位 IF ((NOT trasstart=’1′) AND (send_state < “111”) ) THEN trasstart <= ‘1’; ELSE IF (send_state < “111”) THEN IF (clkbaud_tras = ‘1’) THEN txd_reg <= ‘0’; state_tras <= state_tras + “0001”; END IF; ELSE key_entry2 <= ‘0’; state_tras <= “0000”; END IF; END IF; WHEN “0001” => –发送第1位 IF (clkbaud_tras = ‘1’) THEN txd_reg <= txd_buf(0); txd_buf(6 DOWNTO 0) <= txd_buf(7 DOWNTO 1); state_tras <= state_tras + “0001”; END IF; WHEN “0010” => –发送第2位 IF (clkbaud_tras = ‘1’) THEN txd_reg <= txd_buf(0); txd_buf(6 DOWNTO 0) <= txd_buf(7 DOWNTO 1); state_tras <= state_tras + “0001”; END IF; WHEN “0011” => –发送第3位 IF (clkbaud_tras = ‘1’) THEN txd_reg <= txd_buf(0); txd_buf(6 DOWNTO 0) <= txd_buf(7 DOWNTO 1); state_tras <= state_tras + “0001”; END IF; WHEN “0100” => –发送第4位 IF (clkbaud_tras = ‘1’) THEN txd_reg <= txd_buf(0); txd_buf(6 DOWNTO 0) <= txd_buf(7 DOWNTO 1); state_tras <= state_tras + “0001”; END IF; WHEN “0101” => –发送第5位 IF (clkbaud_tras = ‘1’) THEN txd_reg <= txd_buf(0); txd_buf(6 DOWNTO 0) <= txd_buf(7 DOWNTO 1); state_tras <= state_tras + “0001”; END IF; WHEN “0110” => –发送第6位 IF (clkbaud_tras = ‘1’) THEN txd_reg <= txd_buf(0); txd_buf(6 DOWNTO 0) <= txd_buf(7 DOWNTO 1); state_tras <= state_tras + “0001”; END IF; WHEN “0111” => –发送第7位 IF (clkbaud_tras = ‘1’) THEN txd_reg <= txd_buf(0); txd_buf(6 DOWNTO 0) <= txd_buf(7 DOWNTO 1); state_tras <= state_tras + “0001”; END IF; WHEN “1000” => –发送第8位 IF (clkbaud_tras = ‘1’) THEN txd_reg <= txd_buf(0); txd_buf(6 DOWNTO 0) <= txd_buf(7 DOWNTO 1); state_tras <= state_tras + “0001”; END IF; WHEN “1001” => –发送停止位 IF (clkbaud_tras = ‘1’) THEN txd_reg <= ‘1’; txd_buf <= “01010101”; state_tras <= state_tras + “0001”; END IF; WHEN “1111” => IF (clkbaud_tras = ‘1’) THEN state_tras <= state_tras + “0001”; send_state <= send_state + “001”; trasstart <= ‘0’; CASE send_state IS WHEN “000” => txd_buf <= “01100101”; –“e” WHEN “001” => txd_buf <= “01101100”; –“l” WHEN “010” => txd_buf <= “01100011”; –“c” WHEN “011” => txd_buf <= “01101111”; –“o” WHEN “100” => txd_buf <= “01101101”; –“m” WHEN “101” => txd_buf <= “01100101”;– “e” WHEN OTHERS => txd_buf <= “00000000”; END CASE; END IF; WHEN OTHERS => IF (clkbaud_tras = ‘1’) THEN state_tras <= state_tras + “0001”; trasstart <= ‘1’; END IF; END CASE; END IF; END IF; END IF; END PROCESS; PROCESS(clkbaud8x,rst) –接受PC机的数据 BEGIN IF (NOT rst = ‘1’) THEN rxd_reg1 <= ‘0’; rxd_reg2 <= ‘0’; rxd_buf <= “00000000”; state_rec <= “0000”; recstart <= ‘0’; recstart_tmp <= ‘0’; ELSE IF(clkbaud8x’EVENT AND clkbaud8x = ‘1’) THEN rxd_reg1 <= rxd; rxd_reg2 <= rxd_reg1; IF (state_rec = “0000”) THEN IF (recstart_tmp = ‘1’) THEN recstart <= ‘1’; recstart_tmp <= ‘0’; state_rec <= state_rec + “0001”; ELSE IF ((NOT rxd_reg1 AND rxd_reg2) = ‘1’) THEN –检测到起始位的下降沿,进入接受状态 recstart_tmp <= ‘1’; END IF; END IF; ELSE IF (state_rec >= “0001” AND state_rec<=”1000″) THEN IF (clkbaud_rec = ‘1’) THEN rxd_buf(7) <= rxd_reg2; rxd_buf(6 DOWNTO 0) <= rxd_buf(7 DOWNTO 1); state_rec <= state_rec + “0001”; END IF; ELSE IF (state_rec = “1001”) THEN IF (clkbaud_rec = ‘1’) THEN state_rec <= “0000”; recstart <= ‘0’; END IF; END IF; END IF; END IF; END IF; END IF; END PROCESS; PROCESS(rxd_buf) –将接受的数据用数码管显示出来 BEGIN CASE rxd_buf IS WHEN “00110000” => seg_data <= “00000011”; WHEN “00110001” => seg_data <= “10011111”; WHEN “00110010” => seg_data <= “00100101”; WHEN “00110011” => seg_data <= “00001101”; WHEN “00110100” => seg_data <= “10011001”; WHEN “00110101” => seg_data <= “01001001”; WHEN “00110110” => seg_data <= “01000001”; WHEN “00110111” => seg_data <= “00011111”; WHEN “00111000” => seg_data <= “00000001”; WHEN “01000001” => seg_data <= “00011001”; WHEN “01000010” => seg_data <= “00010001”; WHEN “01000011” => seg_data <= “11000001”; WHEN “01000100” => seg_data <= “01100011”; WHEN “01000101” => seg_data <= “10000101”; WHEN “01000110” => seg_data <= “01100001”; WHEN “01000111” => seg_data <= “01110001”; WHEN OTHERS => seg_data <= “11111111”; END CASE; END PROCESS;END arch;2。可利用单片机的IO口与CPLD实现通信,其他人已经回答过了,我不再赘述。

急,用VHDL设计同步分接器的电路原理谁有啊?

同步数字复接的设计及其FPGA实现作者: 发布时间:2005-08-02摘要:在简要介绍同步数字复接基本原理的基础上,采用VHDL语言对同步数字复接各组成模块进行了设计,并在ISE集成环境下进行了设计描述、综合、布局布线及时序仿真,取得了正确的设计结果,同时利用中小容量的FPGA实现了同步数字复接功能。关键词:同步数字复接/分接 FPGA位同步 帧同步检测基群速率数字信号的合成设备和分接设备是曜网络中使用较多的关键设备,在数字程控交换机的用户模块、小灵通基站控制器和集团电话中都需要使用这种同步数字复接设备。近年来,随着需要自建内部通信系统的公司和企业不断增多,同步数字复接设备的使用需求也在增加。FPGA(现场可编程门阵列)器件的高性能简化了数字通信系统的设计与实现。本文基于FPGA的技术特点,结果数字复接技术的基本原理,实现了基群速率(2048kbps)数字信号的数字分接与复接。1 同步数字复接的基本原理在数字通信网络中,为了扩大传输容量和传输效率,常常需要把若干个低速数字信号合并成为一个高速数字信号,然后通过高速信道传输;而在接收端又按照需要分解成低速数字信号。数字复接技术就是实现这种数字信号合并(复接)和分解(分接)的专门技术[1]。1.1 系统划分同步数字复接终端包括同步数字复接器(Synchronous Digital Multiplexer)和同频数字分接器(Synchronous Digital Demultiplexer)两部分,如图1所示。数字复接器把两个或两个以上的支路数字信号按时分复用方式合并成单一的合数数字信号;数字分接器把单一的合数数字信号分解为原来的各支路数字信号。通常总是把数字复接器和数字分接器装在一起做成一个设备,称为复接分接器(Muldex),一般简称数字复接设备[2]。同步数字复接器由定时和复接单元组成;定时单元给字分接器则由同步、定时和分接单元组成。定时单元给设备提供各种定时信号,复接器的主时钟可由内部产生,也可由外部提供,而分接器主时钟则从接收信号中提取,并通过同步电路的高速整控制,使得分接器基准时序信号与复接器基准时序信号保持正确的相位关系,即收发同步。同步的建立由同步单元实现[1]。1.2 位同步[3]在数字通信中,位同步是最基本的同步。位同步的基本含义就是收端和发端时钟信号必须同频同相,这样接收端才能正确接收和判决发送端送来的每一个码元。为了达到收发端时钟同频同相,接收端需要从收到的码流中提取发送端的时钟信号来控制收端时钟,从而做到位同步。实现位同步的方法分为插入导频法和直接法两类。而直接法按照提取同步信号的方式,大致又可分为滤波法和锁相法。锁相法的原理是:在接收端用鉴相器比较接收码元和本地产生的位同步信号的相位,如果两者不一致,则用鉴相器输出误差信号去控制本地同步信号的相位,直至本地的位同步信号的相位与接收信号的相位一致为止。1.3 帧同步在复接分接器中,如果只是循环交织地复接各支路数字信号,那么一旦合并成为一个合路数字信号后就难以正确地实施分接。为了保证接收端分路系统能和发送端一致,在保持位同步的基础上还必须要有一个帧同步系统,以实现发送端与接收端的帧同步[2]。实现帧同步的基本方法是在发送端预先规定的时隙(即帧同步码时隙)插入一组特殊码型的帧同步码组;在接收端由帧同步检测电路检测该码组以保证收发帧同步[2]。帧同步检测状态有失步态、同步校核态、同步态和同步保护态四种状态。2 基于FPGA的同步数字复接的设计与实现FPGA/CPLD即继承了ASIC的大规模、高集成度、高可靠性的优点,又克服了普通ASIC设计的设计周期长、投资大、灵活性差的缺点,逐步成为复杂数字电路设计的理想首选[4]。ISE是XILINX公司提供的一个开发FPGA/CPLD的集成环境,其集成的工具可以完成从设计输入、功能仿真、综合优化、综合后仿真、布局布线、时序仿真到配置芯片等整个FPGA。CPLD开发过程。本设计采用ISE集成环境进行开发,使用SPARTAN-3系列FPGA器件实现设计。2.1 按骊字复接系统的设计数字信号复接主要有两种方式[1]:一种是“逐位复接”,另一种是“按码字复接”。其中按码复接方式保留了码字结构,有利于多种合成处理和交换。本设计要实现32路信号的复接,信息位采取各支路彼此循环且每次插入一个8位信息位到合路数字信号中的码字复接形式,帧同步码采用CCITT推荐的10011011。2.1.1 复接器和分接器的设计复接器应完成两个功能。一是循环接收32个64kbps的支路信号,每个支路每次送入8位信息位(其中第一支路送入固定的帧同步码10011011),形成合路数字;二是将合路数据以2048kbps的速率发送出去,形成合路信号——基群速率信号。同步数字复接器电路原理图如图2所示,复接器由移位寄存器和定时模块两部分构成。移位寄存器分两组,每组由32个8位移位寄存器组成。在一帧时间(125μs)内,当其中一组移位寄存器在64kHz时钟控制下同时移入32个支路的数据时,另一组移位寄存器个支路的数据依次送出。在下一帧时间内,则由第一组移位寄存器输出2048kbps的合路信号,第二组移位寄存器读入32个64kbps的支路数据。依此规律,在定时模块的控制下,由两组移位寄存器交换变换工作任务,实现了支路输入和合路输出的连续性。定时模块由计数器(cnt)、多路选择器(mu12~mu15)等组成,为两组移位寄存器提供工作允许信号、合路信号输出的切换选择信号。为了提高时钟的可靠性、降低时钟的延时抖动、提高时钟的驱动能力,从而更好地完成同步复接,利用FPGA自身提供的全局时钟资源驱动本设计的主时钟,将外部时钟从芯片的全局时钟管脚输入,经过BUFGP(IBUFG BUFG)后通过全局时钟网络送至同步复接部分。分接器的功能与复接器相反。分接器在其定时单元的控制下,对两组移位寄存器进行2048kbps的数据写入和64kbps的数据读出,实现基群速率合路数字信号的32路分接。2.1.2 位同步提取电路的设计实现合路数字信号的分接,需要从数据流中提取时钟同步信息。目前,在数字通信系统中,常常采用数字锁相法提取位同步信号[3]。位同步提取电路如图3(a)所示,主要由微分与鉴相模块、添门/扣门控制模块、高频时钟模块以及分频器(clk_gen)等部分组成。微分电路(diff)的功能是把非归零码转换为归零码,以利于定时信息的提取。鉴相器的功能是比较接收码元(code_in)与分频器输出的本地时钟信号(clk_out)的相位,若本地时钟超前于接收码元的相位,鉴相器向扣门电路输出一个超前脉冲,在16分频器输入端扣除一个高频窄脉冲,使分频器输出的时钟信号和相位滞后1/16周期;若本地时钟滞后于接收码元的相频窄脉冲,使分频器的输出脉冲的相位提前1/16周期。高频时钟模块将本地高频时钟输入信号clk_in转换为两路相位差为90°的窄脉冲序列,分别为添门和扣门提供高频窄脉序列。添门为常闭门,在没有滞后脉冲控制时,此门始终关闭;扣门为常开门,若无超前脉冲控制时,窄脉冲信号通过此常开门。分频器将输入的高频时钟信号分频后输出位同步信号clk_out。对位同步提取电路进行时序仿真,得到的时序仿真波形图如图3(b)所示。图中,code_in为输入码流,clk_out为位同步信号输出。由图可知,该电路可以从输入码流中准确提取位同步信号,并且在码流相位有变化的时,位同步信号可以快速地做出相位调整,保持同步。2.1.3 帧同步单元的设计为了正确地实施分接,在分接前必须先通过帧步单元对合路信号进行帧同步检测。帧同步单元是复接设备中较复杂也很重要的部分。如图4所示,它主要由同步码检测模块(chk)和同步检测控制模块(chk_ctrl)两部分组成。其中,同步码检测模块对输入的数据流进行搜索,一旦检测到帧同步码(10011011),立即输出一个捕获脉冲信号(gen);同步检测控制模块由帧同步系统状态计数器和一帧计数器等构成,完成帧同步单元的状态转换控制、每帧检测同步头的控制等功能。帧同步的关键部分是前方保护和后方保护的设计。为了减少从失步到重新获得同步的时间和减小信道误码对同步工作状态的影响,从而得到较好的通信质量,本设计采用了2帧后方保护和3帧前方保护的方案。帧同步系统状态转换图如图5所示。系统工程上电复位后,在起始时刻处于失步状态(STATE0_1xx——其中x表示无关值),系统从外部输入的合码路流中搜捕帧同步码“10011011”,若合路码流中没有帧同步码,状态计数器仍保持为1xx;若从合码路流中检测同步码(get=”1″),则状态计数器清零为000,系统进入同步核校态(STATE1_000),开始将合路码流写入移位寄存器,分接器输出开关仍然为关闭状态(switch=”0″)。在同步校核状态下,若下一帧确认帧同步码不正确,判断为虚假同步,则状态计数器减1变为111,系统回到失步态;相反,若下一帧确认帧同步确正确,则系统进入同步态(STATE2_001),分接器输出开关打开(switch=”1″),开始正常分接合路码流。系统进入同步态后,若合路码流中出现帧同步码丢失,则状态计数器加1,系统进入同步保护态1(STATE3_010);若下一帧仍然检测帧同步码失败,则状态计数器再加1,系统进入同步保护态2(STATE4_011);若连续第三帧未收到帧同步码,则状态计数器再加1转为100,系统进入失步状态,停止分接合路码流(switch=”0″),同时重新开始搜搏帧同步码“10011011”。系统在同步保护态(状态计数器值为01x)下,若检测帧同步码正确,则状态计数器置数为001,系统回到同步态。2.2 系统仿真与验证在ISE集成环境下,调用ModelSim仿真软件对系统各模块进行功能仿真、综合后仿真以及布局布线后的时序仿真。仿真结果表明,复接器、分接器、同步单元等所有模块的设计均满足设计要求。图6为了进一步确保系统设计的可实用性,将系统各组成模块按照自环工作状态连接起来,对系统各模块进行了联合仿真。复接设备自环验证的原理图如图6所示。将32路64kbps的支路信号Ts_sin(31:0)送到复接器(multiplexer)的支路信号输入端Ts(31:0),复接器的合路信号输出端E1_out与同步单元syn_module(包括位同步和帧同步)的合路信号输入端E1_in相连(自环),合路信号经过位同步信号提取以及帧同步检测后,由同步单元将非失步状态下的合路序列从信号输出端E1_out送出,同步单元还提供位同步信号clk_out,送分接器demultiplex的输入端xclk-2M,同步单元输出的合路序列送入分接器的合路信号输入端E1_in,经过分接器实施分接后,最后从支路输出控制单元output_gate的输出端可以得到各个支路的输出信号Ts_out(31:)。图7为复接设备自环验证的仿真时序图。其中,Ts_in为32个支路送来的64kbps的激励信号;mul_E1_out为经复接器实施复接后的合路信号;E1_check_in为进入帧同步码检测模块的合路序列;get_syn为帧同步码检测的结果;one_fr为同步校核和同步保护所需的帧 步码检测控制信号;syn_n为系统失步信号;syn_E1_out为非失步状态下的合路序列;opn为支路信号输出允许信号;Ts_out为实施分接后各支路的64kbps输出信号;Ts_in(1)为复接器第一支路输入信号;Ts_out(1)为分接器第一支路输出信号。将输入激励信号Ts_in与系统支路输出信号Ts_out相比较,结果表明,在从同步到下一次失步的时间内,Ts_out与Ts_in信号波形基本一致——Ts_out中会出现一些1~2ns的过渡值,这些过渡值是由于Ts_out总线中32个支路信号到达寄存器输出端的时间不一致而造成的,这是由FPGA器件时延不确定性决定的。由Ts_in(1) 和Ts_out(1)的波形比较可知,对于每个单一的支路信号,并不存在这种过渡值,分接后的分路信号与复接器支路输入信号一致。因此,Ts_out总线中出现的这种过渡值不会影响系统的性能。时序仿真结果表明,复接、同步以及分接功能均正常,满足设计要求。在5万门的SPARTAN-3系列FPGA器件xc3s50上实现设计,硬件资源的使用情况如下:319个Slice,263个Slice Flip Flop,562个4 input LUT,70个bonded IOB,2个GCLK。该设计已作为一个模块应用到其它系统中,具有一定的实用价值。同时,由于该技术采用VHDL语言描述,具有可移植性,利用中小容易的FPGA就能实现该系统功能。

74ls245如何使用

掌握了一下的硬件和软件知识,基本上就可以成为一个合格的电子工程师: 第一部分:硬件知识 一、 数字信号 1、 TTL和带缓冲的TTL信号 2、 RS232和定义 3、 RS485/422(平衡信号) 4、 干接点信号 二、 模拟信号视频 1、 非平衡信号 2、 平衡信号 三、 芯片 1、 封装 2、 7407 3、 7404 4、 7400 5、 74LS573 6、 ULN2003 7、 74LS244 8、 74LS240 9、 74LS245 10、 74LS138/238 11、 CPLD(EPM7128) 12、 1161 13、 max691 14、 max485/75176 15、 mc1489 16、 mc1488 17、 ICL232/max232 18、 89C51 四、 分立器件 1、 封装 2、 电阻:功耗和容值 3、 电容 1) 独石电容 2) 瓷片电容 3) 电解电容 4、 电感 5、 电源转换模块 6、 接线端子 7、 LED发光管 8、 8字(共阳和共阴) 9、 三极管2N5551 10、 蜂鸣器 五、 单片机最小系统 1、 单片机 2、 看门狗和上电复位电路 3、 晶振和瓷片电容 六、 串行接口芯片 1、 eeprom 2、 串行I/O接口芯片 3、 串行AD、DA 4、 串行LED驱动、max7129 七、 电源设计 1、 开关电源:器件的选择 2、 线性电源: 1) 变压器 2) 桥 3) 电解电容 3、 电源的保护 1) 桥的保护 2) 单二极管保护 八、 维修 1、 电源 2、 看门狗 3、 信号 九、 设计思路 1、 电源:电压和电流 2、 接口:串口、开关量输入、开关量输出 3、 开关量信号输出调理 1) TTL―>继电器 2) TTL―>继电器(反向逻辑) 3) TTL―>固态继电器 4) TTL―>LED(8字) 5) 继电器―>继电器 6) 继电器―>固态继电器 4、 开关量信号输入调理 1) 干接点―>光耦 2) TTL―>光耦 5、 CPU处理能力的考虑 6、 成为产品的考虑: 1) 电路板外形:大小尺寸、异形、连接器、空间体积 2) 电路板模块化设计 3) 成本分析 4) 器件的冗余度 1. 电阻的功耗 2. 电容的耐压值等 5) 机箱 6) 电源的选择 7) 模块化设计 8) 成本核算 1. 如何计算电路板的成本? 2. 如何降低成本?选用功能满足价格便宜的器件 十、 思考题 1、 如何检测和指示RS422信号 2、 如何检测和指示RS232信号 3、 设计一个4位8字的显示板 1) 电源:DC12 2) 接口:RS232 3) 4位3”8字(连在一起) 4) 亮度检测 5) 二级调光 4、 设计一个33位1”8字的显示板 1) 电源:DC5V 2) 接口:RS232 3) 3排 11位8字,分4个、3个、4个3组,带行与行之间带间隔 4) 单片机最小系统 5) 译码逻辑 6) 显示驱动和驱动器件 5、 设计一个PCL725和MOXA C168P的接口板 1) 电源:DC5V 2) 接口:PCL725/MOXA 8个RS232 1. PCL725,直立DB37,孔 2. MOXA C168P,DB62弯 3) 开关量输出信号调理:6个固态继电器和8个继电器,可以被任何一路信号控制和驱动,接口:固态继电器5.08直立,继电器3.81直立 4) 开关量输入调理:干接点闭合为1或0可选,接口:3.81直立 5) RS232调理: 1. LED指示 2. 前4路RS232全信号,后4路只需要TX、RX、0 3. 无需光电隔离 4. 接口形式:DB9(针)直立 第二部分:软件知识 一、 汇编语言 二、 C51 该部分可以从市场上买到的N种开发板上学到,至于第一部分,需要人来带吧。 为什么要掌握这些知识? 实际上,电子工程师就是将一堆器件搭在一起,注入思想(程序),完成原来的这 些器件分离时无法完成的功能,做成一个成品。所需要的技能越高、功能越复杂、 成本越低、市场上对相应的东东的需求越大,就越成功。这就是电子工程师的自身 的价值。从成本到产品售出,之间的差价就是企业的追求。作为企业的老板,是在 市场上去寻找这样的应用;对电子工程师而言,是将老板提出的需求或者应用按照 一定的构思原则(成本最低、可靠性最高、电路板最小、功能最强大等)在最短的 时间内完成。最短的时间,跟电子工程师的熟练程度、工作效率和工作时间直接有 关。这就是电子工程师的价值。 将电子产品抽象成一个硬件的模型,大约有以下组成: 1) 输入 2) 处理核心 3) 输出 输入基本上有以下的可能: 1) 键盘 2) 串行接口(RS232/485/can bus/以太网/USB) 3) 开关量(TTL,电流环路,干接点) 4) 模拟量(4~20ma、 0~10ma、0~5V(平衡和非平衡信号)) 输出基本上有以下组成: 1) 串行接口(RS232/485/can bus/以太网/USB) 2) 开关量(TTL、电流环路、干接点、功率驱动) 3) 模拟量(4~20ma, 0~10ma,0~5V(平衡和非平衡信号)) 4) LED显示:发光管、八字 5) 液晶显示器 6) 蜂鸣器 处理核心主要有: 1) 8位单片机,主要就是51系列 2) 32位arm单片机,主要有atmel和三星系列 51系列单片机现在看来,只能做一些简单的应用,说白了,这个芯片也就是做单一 的一件事情,做多了,不如使用arm来做;还可以在arm上加一个操作系统,程序既 可靠又容易编写。 最近三星的arm受到追捧,价格便宜,以太网和USB的接口也有,周立功的开发系统 也便宜,作为学习ARM的产品来说,应该是最好的;作为工业级的控制,是不是合 适,在网友中有不同的看法和争议。本公司使用atmel ARM91系列开发的1个室外使 用的产品,在北京室外使用,没有任何的通风和加热的措施,从去年的5月份到现 在,运行情况良好。已经有个成功应用的案例。 但对于初学者来说,应该从51着手,一方面,51还是入门级的芯片,作为初学者练 手还是比较好的,可以将以上的概念走一遍;很多特殊的单片机也是在51的核的基 础上增加了一些I/O和A/D、D/A;也为今后学习更高一级的单片机和ARM打下基础。 再说了,哪个老板会将ARM级别的开发放在连51也没有学过的新手手中? 在51上面去做复杂的并行扩展是没有必要的,比如,扩展I/O口和A/D、D/A等等, 可以直接买带有A/D、D/A的单片机;或者直接使用ARM,它的I/O口线口多。可以使 用I2C接口的芯片,扩展I/O口和A/D、D/A,以及SPI接口扩展LED显示,例如: MAX7219等芯片。 市面上一些比较古老的书籍中还有一些并行扩展的例子,如:RAM、EPROM、A/D、 D/A等,我觉得已经没有必要去看了,知道历史上有这些一回事就行了; 这些知识,是所有产品都具备的要素。所以要学,再具体应用。 说一个小的故事:野人献曝。 从前,有一个农民,冬天干了活后,休息晒太阳。好舒服呀。 他想,这么舒服的享受,我要献给国王,让他也能得到享受。 于是他兴冲冲地到了王宫,将他的宝贵经验献给了国王。 我现在就象这个农民,把自己认为很宝贵的经验献给大家。希望大家多提宝贵意见 ;拍板砖也可以,骂我也无所谓,呵呵,随便。 第一课:51单片机最小系统 实际上,51单片机核心外围电路是很简单的,一个单片机+一个看门狗+一个晶振 +2个磁片电容; 1. 单片机:atmel的89C51系列、winbond的78E52系列,还有philips的系列,都差 不多;现在有一些有ISP(在线下载的),就更好用了; 2. 看门狗:种类很多,我常用的有max691/ca1161和DS1832等,具体看个人习惯、 芯片工作电压、封装等。Max系列和DS系列,还有IMP公司的,种类很多,一般只需 要有最基本的功能就可以了;原来我使用max691,但是max691比较贵,因为它有电 池切换功能,后来新设计电路板,就都采用ca1161了。 很早以前的电路设计中,现在可能还有人使用,使用一个电阻和一个电容达成的上 电复位电路;但是,这样的复位电路一个是不可靠,为什么不可靠,网络上能找得 到专门论述复位电路的文章;更重要的是,51系列的单片机比较容易受到干扰;没 有看门狗电路是不行的,当程序跑飞时,回不来了,死在那里。 常规的做法是买一个专门的看门狗电路,完成复位电路和看门狗电路的功能。 这些芯片的资料很容易在网络上找到,通常使用网络搜索就可以了;看见有PDF的 字样,就点击下载;使用网际快车flashget下载也是最好的; 这些资料通常是pdf格式的文件,所以,还需要一个pdf的阅读器。 网络网址: 网际快车下载网址: PDF阅读器下载网址: 实际上,有了网络和其它的搜索引擎,很方便下载到这些芯片的资料,比光盘还方 便,不需要去到处找。 单片机和单片机抗干扰能力是不一样的。如果你的产品是工作在干扰比较大的环境 ,可以试试选用不同品牌的单片机;原来我在一个光电所,做YAG激光治疗机的控 制部分,脉冲激光机的电源放电的时候,能量是很大的,在采取了所有能够想到的 光电隔离等措施之后,还是不行;后来,选用了intel的8031,就可以了。小声的 说:当时的philips的单片机抗干扰性能是最差的,可能跟Philips主要是用在民用 领域有关。现在不知道怎么样了,有人知道的话告诉我。 单片机的输入输出口线是最容易引进干扰的地方;在严重干扰的情况下,需要将所 有的口线光电隔离。 3. 晶振:一般选用11.0592M,因为可以准确地得到9600波特率和19200波特率;也 可以使用36.864M,这个频率是1.8432M的20倍,看别人的电路板上用过,我也没有 用到。这2种晶振很容易买到,价钱跟12M的一样。书上说,12M的晶振也能得到 9600的波特率,但是,实际用的时候,会每隔一段时间就出错一次,好像累积误差 一样,比较奇怪。 即使你的单片机系统不使用RS232接口,也可以做一个Rs232,留着做测试,或者预 留等等,没有坏处。除非你的单片机系统的口线不够用了。 4. 磁片电容:22pf~30pf,可以在有些书上找到什么晶振频率对应什么容量的磁 片电容,但是,我都是随便拿来使用,反正在11.0592M下,都没有问题;如果你用 到了更高的频率,最好还是找找资料看看。 参见以下电路图: 如果你的单片机系统没有工作,检查步骤如下: 1. 查看门狗的复位输出,可能的话在电路板上加一个LED,下拉,这样看起来就更 方便;要是看门狗复位信号有,往下; 2. 查单片机,看看管脚有没有问题;一般编程器能够将程序写入,说明单片机是 好的;最好手头上准备一个验证过的单片机,内部有一个简单的程序,比如,在某 个口线上输出1个1秒占空比的方波等,可以使用万用表测量。 加一句:设计产品时,要在关键的地方:电源、串口、看门狗的输出和输入、I/O 口等加不同颜色的LED指示,便于调试;作为批量大的产品,可以去掉部分LED,一 方面是降低成本、一方面是流程保密; 3. 再查磁片电容,有些瓷片电容质量不行,干脆换了;顺便说一下,换器件最好 使用吸锡带,将焊盘内的锡吸干净,再将器件拔出,这样不会损伤焊盘内的过孔; 再将新的瓷片电容焊接上去的时候,用万用表量量是好的再焊; 4. 最后只有换晶振了;切记要买好的晶振,有些品牌质量比较好。 5. 以上按照以上步骤检测时,将无关的外围芯片去掉;因为有一些是外围器件的 故障导致单片机最小系统没有工作。 第二课 基本的芯片和分立器件 2.1 简述 2.2 74系列 2.3 CD4000系列 2.4 光耦与光电管 2.5 三极管 2.6 电容电阻 2.7 固态继电器 2.8 继电器 2.9 变压器和三端稳压器 2.10 开关电源芯片 2.11 封装知识、芯片批号等 2.12 接插件 2.13 器件选购的知识 第三课 数字量的输入输出 第四课 单片机的通讯接口 第五课 单片机系统设计的硬件构思 第六课 单片机程序的框架(汇编版本) 第七课 模拟量的输入输出 …… 各位多提宝贵意见。 保证实用。如果程序里面有一些例程,也是已经经过测试可以拿来就用的;实际上 是我早年的一些产品的程序的一部分;不好意思,都是汇编的。 写的时间只有周末会多一些,可以保证做到一周一课;尽量能够提前,但是这要看 看工作忙不忙了。 坊间有一些参考书,准备今天上午到北京中发市场转了一圈,我记得以下参考书目 较好: 1. 周航慈:《单片机程序设计》 2. 徐涵芳:《MCS-51单片机结构与设计》 3. 何立民:《……》 有了这些就基本够用了;其它的很多都是资料的翻译;如果英文不好,可以看看; 英文好的话,可以不必了,省电钱买开发系统和编程器、开发板什么的,需要什么 资料直接下载PDF文件好了。 要想成为电子工程师,需要宽带,在家里安装包月的adsl或者长宽,绝对值得。 实际上,网络上什么都有了,就是一个网络数据库,要好好利用。 网上自有黄金屋,网上自有颜如玉…… 第二课 基本的芯片和分立器件 2.1 简述 有必要对以下系列的芯片和分立器件进行介绍。 除了单片机作为控制器的核心外,作为一个产品,由很多东西构成;所以,在讲系 统之前,先将这些零零碎碎的东西一并交待。就好像一栋房子,有各种各样的构件 组成,下面的这些东东就像砖瓦一样,没有不行。 2.2 74系列芯片 74系列的芯片的下载地址: 74系列的芯片是古老的一族,大部分的芯片现在均已不用了,但是,实际上,在目 前的系统中,还能看到一些芯片,有些芯片现在还在系统中使用,例如: 1、 7404 – 6个反相门 下载地址: 将输入的TTL逻辑反相,如:0->1,1->0 2、 7407 – 6个集电极开路门 下载地址: 由于集电极开路门可以外接高电压,可以最高到DC30V,电流最大到39mA,通常我 用它驱动8字数码管和继电器等大电流的负载;开路门内部结构是达林顿管的,输 出的逻辑是正的; 与其类似的芯片是7406,只不过是反相开路门。 3、 74LS573与74LS373 – 8 数据锁存器 74LS373下载地址: 74LS573下载地址: 引入几个概念: 1. 真值表 参见74LS373的PDF的第2页: Dn LE OE On H H L H L H L L X L L Qo X X H Z 这个就是真值表,表示这个芯片在输入和其它的情况下的输出情况。 每个芯片的数据手册(datasheet)中都有真值表。 布尔逻辑比较简单,在此不赘述; 2. 高阻态 就是输出既不是高电平,也不是低电平,而是高阻抗的状态;在这种状态下,可以 多个芯片并联输出;但是,这些芯片中只能有一个处于非高阻态状态,否则会将芯 片烧毁; 高阻态的概念在RS232和RS422通讯中还可以用到。 3. 数据锁存 当输入的数据消失时,在芯片的输出端,数据仍然保持; 这个概念在并行数据扩展中经常使用到。 4. 数据缓冲 加强驱动能力。74LS244/74LS245/74LS373/74LS573都具备数据缓冲的能力。 OE:output_enable,输出使能; LE:latch_enable,数据锁存使能,latch是锁存的意思; Dn:第n路输入数据; On:第n路输出数据; 再看这个真值表,意思如下: 第四行:当OE=1是,无论Dn、LE为何,输出端为高阻态; 第三行:当OE=0、LE=0时,输出端保持不变; 第二行第一行:当OE=0、LE=1时,输出端数据等于输入端数据; 结合下面的波形图,在实际应用的时候是这样做的: a. OE=0; b. 先将数据从单片机的口线上输出到Dn; c. 再将LE从0->1->0 d. 这时,你所需要输出的数据就锁存在On上了,输入的数据在变化也影响不到输 出的数据了;实际上,单片机现在在忙着干别的事情,串行通信、扫描键盘……单 片机的资源有限啊。 在单片机按照RAM方式进行并行数据的扩展时,使用movx @dptr, A这条指令时,这 些时序是由单片机来实现的。 后面的表格中还有需要时间的参数,你不需要去管它,因为这些参数都是几十ns级 别的,对于单片机在12M下的每个指令周期最小是1us的情况下,完全可以实现;如 果是你自己来实现这个逻辑,类似的指令如下: mov P0,A ;将数据输出到并行数据端口 clr LE setb LE clr LE ;上面三条指令完成LE的波形从0->1->0的变化 74ls573跟74LS373逻辑上完全一样,只不过是管脚定义不一样,数据输入和输出端 各在一侧,PCB容易走线;所以大家都喜欢使用这个芯片。 4、 74LS244 – 数据缓冲器 下载地址: 数据输出能力比较强,输出电流可以到40mA以上; 4个缓冲器分成2组,具有高阻态控制端口 5、 74LS245 – 总线缓冲器 双向数据接口,通常在ISA板卡上可以看到; 早期的51系统中,为了扩展RAM、eprom、A/D、D/A、I/O等经常可以看到这个片子 ; 为了增强驱动能力,有时是为了隔离输入和输出,主要是布线方便,象74LS573一 样,输入、输出在一侧,经常用到这个片子 6、 74LS138 – 三-八译码器 在早期的51系统的扩展中,作为地址选通的片子,可以经常看到。 另外一个类似的芯片是74LS154,是4-16译码器,现在更是少见了。 有兴趣的可以研究一下何立民的经典著作中的有关章节。 知道有这么一个芯片就可以了。 2.3 CD4000系列 CD4000系列的芯片,除了跟74系列的电气特性有所区别外,例如: 1) 电压范围宽,应该可以工作在3V~15V,输入阻抗高,驱动能力差外,跟74系列 的功能基本没有区别; 2) 输入时,1/2工作电压以下为0,1/2工作电压以上为1; 3) 输出时,1=工作电压;0=0V 4) 驱动能力奇差,在设计时最多只能带1个TTL负载; 5) 如果加上拉电阻的话,至少要100K电阻; 6) 唯一现在使用的可能就是计数器,CD4060的计数器可以到14级二进制串行计数/ 分频器,这个74系列的做不到这么高; 下载地址: 2.4 ULN2003/ULN2008 它的内部结构也是达林顿的,专门用来驱动继电器的芯片,甚至在芯片内部做了一 个消线圈反电动势的二极管。ULN2003的输出端允许通过IC 电流200mA,饱和压降 VCE 约1V左右,耐压BVCEO 约为36V。用户输出口的外接负载可根据以上参数估算 。采用集电极开路输出,输出电流大,故可以直接驱动继电器或固体继电器(SSR) 等外接控制器件,也可直接驱动低压灯泡。 经常在工控的板卡中见到这个芯片。 有个完全一样的型号:MC1413,不过现在好像不怎么见到这个型号了,但是管脚与 2003完全兼容。 ULN2003可以驱动7个继电器;ULN2008驱动8个继电器。 ULN2003下载地址: ULN2008下载地址: 没有找到。奇怪啊。 2.5 光耦 光耦是做什么用的?光耦是用来隔离输入输出的,主要是隔离输入的信号。 在各种应用中,往往有一些远距离的开关量信号需要传送到控制器,如果直接将这 些信号接到单片机的I/O上,有以下的问题: 1) 信号不匹配,输入的信号可能是交流信号、高压信号、按键等干接点信号; 2) 比较长的连接线路容易引进干扰、雷击、感应电等,不经过隔离不可靠 所以,需要光耦进行隔离,接入单片机系统。 常见的光耦有: 1) TLP521-1/ TLP521-2/ TLP521-4,分别是1个光耦、2个光耦和4个光耦,HP公司 和***的东芝公司生产。 下载地址: ,4.PDF 发光管的工作电流要在10mA时,具有较高的转换速率; 在5V工作时,上拉电阻不小于5K,一般是10K;太小容易损坏光耦; 2) 4N25/4N35,motorola公司生产 下载地址: ,35-7,H11A1-5.PDF 隔离电压高达5000V; 3) 6N136,HP公司生产 下载地址: 要想打开6N136,需要比较大的电流,大概在15~20mA左右,才能发挥高速传输数据 的作用。 如果对速率要求不高,其实TLP521-1也可以用,实际传输速率可以到19200波特率 。 选择光耦看使用场合,tlp521-1是最常用的,也便宜,大概0.7~1元; 要求隔离电压高的,选用4N25/4N35,大概在3元左右; 要求在通讯中高速传输数据的,选用6N136,大概在4元左右。 光耦应用的原理框图如下所示: 1. 输入干接点隔离 2. 输入TTL电平隔离 3. 输入交流信号隔离 4. 输出RS232信号隔离 5. 输出RS422信号隔离 光耦除了隔离数字量外,还可以用来隔离模拟量。将在今后的章节中描述。 2.6 三极管 2.7 光电管 2.8 电容 2.9 电阻 2.10 固态继电器 2.11 继电器 2.12 变压器与整流桥 2.13 三端稳压器 2.14 开关电源芯片 2.15 封装知识、芯片批号等 2.16 接插件 2.17 器件选购的知识 2.6 三极管 2.6.1 三极管的4种工作状态 1) 饱和导通状态 饱和导通=0 2) 截止状态 饱和导通=1 3) 线性放大状态 作为低频放大器时使用,具体的可参见有关电子线路的书籍; 4) 非线性工作状态 在无线电通信系统中,作为混频器等使用。具体的可参见有关电子线路的书籍; 愚记得南京工学院也就是现在的东南大学在80年代初期有一套《电子线路》5本, 是电子专业的书籍,比较难懂;现在,即使是在电子专业的学生中,也应该降低了 对三极管的哪些复杂的参数的要求了吧;在实际使用时,即使是模拟电路、非线性 电路,也都是集成电路了,谁还使用三极管自己做呢?如果万一需要,现学也来得 及。这套书很强的。编写人在那个年代肯定都是牛人。 学三极管这些参数很繁琐的,要是现在的非电子类的大学生或者大专生们还学这些 玩意,我只能说是学校在误人子弟了。 好多学校都在扩招,很多学生念了4年下来,学了一堆过时的理论,跟实际的东西 一点没有接轨,不知道7407是干什么用得,不知道三极管的几个状态;我只能无话 可说。 所以,念了4年下来,跟企业的需求还有一段距离,还需要从头来过;聪明的学生 赶紧抓住机会去学习,去实习,这样,还可以赶紧补上实际应用的这一课。 言归正传。 参见下图: 当单片机的口线输出电平为1时,三极管的be结导通,ce结导通,输出的电压值为 0V; 当单片机的口线输出电平为0时,三极管的be结不导通,ce结截止,输出的电压值 为5V; 在这种数字电路的应用中,相当于三极管是一个反相开路门。 计算是否导通,公式如下: I=B(放大倍数,希腊字母的贝塔)×Ibe 当Ice<I时,即为饱和导通; 相差越大,饱和程度越深,Vce越小,三极管的输出内阻越小; 这个概念要用到光电管中。 设计使用时大概算算,心里有个数;在电路板上试试,行的通,那就是它了。可以 测量Vce值,至少要小于0.1V就可以了。 常用的PNP三极管是2N5551,驱动40mA的LED(电压在24V)、蜂鸣器等均没有问题 。 2.6.2 三极管的具体应用 实际上,已经有象7407、ULN2003可以取代三极管在数字电路中的作用;但是,有 时是受到PCB面积的制约,有时是为了降低成本,有时是因为布局方便,在1~2个输 出点时,还是可以使用三极管来做驱动的。 例如:驱动一个蜂鸣器;往往系统中的蜂鸣器跟其它驱动设备,继电器等,距离较 远;这时,没有必要使用一片7407,或者ULN2003来驱动;驱动的接口如下: Re:从51初学者到电子工程师(转帖) 2.7 光电管 我这里所谓的光电管有2种: 1) 反射型光电管 2) 对射型光电管 这2种产品在市场上又可分为调理好的和没有调理好的; 这2种光电管在电子产品世界和电子技术应用杂志上都有大量的广告。随便找一本 都有。 我所说的调理好的指的是内部已经加了限流电阻和输出的放大驱动电路了。它的特 点是只有3根线,电源2根,输出信号一根,TTL电平的;但是,有时受到某种限制 ,需要使用没有调理好的,怎么办呢? 参见下图:光电管原理框图 这种没有调理好的光电管在使用时,需要做一块小的电路板,在发光管加限流电

学习PLC编程 用什么参考书好

看看这里有么 下下来看看 如果需要再买 F:\学习考研\电子图书\电子宝库 ├—215例题解析自动控制原理_0 ├—21世纪信息与通信技术教程 多媒体通信_0 ├—21世纪信息与通信技术教程 数字电路与FPGA_0 ├—21世纪信息与通信技术教程 数字语音:语音编码实用教程_0 ├—21世纪信息与通信技术教程 现代通信基础与技术_0 ├—21世纪大学计算机应用系列教材 JAVA与面向对象程序设计导论_0 ├—21世纪大学计算机系列教材 C语言大学实用教程_0 ├—21世纪网络平台大学计算机系列教材 离散数学_0 ├—21世纪网络平台大学计算机系列教材 网络平台大学计算机信息技术├—21世纪高等学校电子信息类专业规划教材 多媒体课件制作实训教程_0 ├—21世纪高等学校电子信息类专业规划教材 网络安全技术基础_0 ├—21世纪高等学校电子信息类专业规划教材 网络安全概论_0 ├—21世纪高等学校电子信息类专业规划教材 网络系统集成技术_0 ├—21世纪高等学校电子信息类专业规划教材 计算机信息管理基础_0 ├—21世纪高等学校电子信息类专业规划教材 计算机硬件技术基础_0 ├—21世纪高等学校电子信息类教材 数字微波通信系统_0 ├—21世纪高等学校规划教材 高等数学_0 ├—21世纪高等学校计算机基础教育系列教材 数据库应用与程序设计实验指导_0 ├—21世纪高等学校计算机基础教育系列教材 数据库应用与程序设计教程_0 ├—21世纪高等学校计算机科学与技术教材 面向对象C++程序设计_0 ├—21世纪高等院校教材 电磁场与电磁波_0 ├—21世纪高等院校教材 遥感数字图像处理_0 ├—21世纪高等院校数字艺术设计系列教材 数字动画设计艺术_0 ├—21世纪高等院校电气信息类系列教材 单片机原理与应用_0 ├—21世纪高等院校规划教材 DSP原理及应用_0 ├—21世纪高等院校规划教材 数据通信与计算机网络_0 ├—21世纪高等院校计算机教材系列 C语言程序设计教程_0 ├—21世纪高等院校计算机科学与工程系列教材 微型计算机原理与接口技术_0 ├—21世纪高等院校计算机科学与技术规划教材 Java程序设计简明教程_0 ├—21世纪高等院校计算机科学与技术规划教材 微机原理与接口技术 (80386-Pe_0 ├—21世纪高等院校计算机系列教材 Java程序设计基础_0 ├—21世纪高等院校计算机系列教材 Java程序设计实验与实训_0 ├—21世纪高等院校计算机系列教材 管理信息系统_0 ├—21世纪高等院校计算机系列教材 编程逻辑与结构化程序设计 (第三版)_0 ├—21世纪高职高专信息技术教材 数据库原理及应用教程_0 ├—21高等学校电子信息类专业规划教材 计算机引论_0 ├—301例题解析电工电路 (中册)_0 ├—372例题解析电工电路 (上册)_0 ├—488例题解析电工电路 (下册)_0 ├—8051单片机彻底研究 基础篇_0 ├—8051单片机彻底研究 实习篇_0 ├—8051单片机数据传输接口扩展技术与应用实例_0 ├—Adobe 数字艺术中心 InDesign CS标准教材_0 ├—Advanced C++ (中文版)_0 ├—APSL参数化有限元分析技术及其应用实例_0 ├—ASP+SQL Server网络应用系统开发与实例_0 ├—ASP信息系统设计与开发实列_0 ├—Authorware 6_5多媒体制作基础教程_0 ├—BHDL实例剖析_0 ├—BIOS、注册表与硬盘终极解析_0 ├—Blackfin系列DSP原理与系统设计_0 ├—C#Builder编程起跑_0 ├—C#大学教程_0 ├—C#应用程序开发标准教程_0 ├—C#程序设计培训教程_0 ├—C#面向对象程序设计:台版_0 ├—C++ Templates中文版_0 ├—C++Builder 6实用编程100例_0 ├—C++同构化对象程序设计原理_0 ├—C++多范型设计_0 ├—C++大学自学教程(第7版)_0 ├—C++捷径教程 第3版_0 ├—C++程序设计_0 ├—C++程序设计实验指导与实训_0 ├—C++编程惯用法——高级程序员常用方法和技巧_0 ├—C++网络编程 卷2 基于ACE和框架的系统化复用_0 ├—C++面向对象程序设计 (第四版)_0 ├—CAXA电子图板XP实用教程_0 ├—CCNA学习指南 (中文版) (640-801)_0 ├—CDMA 无线通信原理_0 ├—CPLD_FPGA可编程逻辑器件应用与开发_0 ├—C_0 ├—C语言与MATLAB接口:编程与实例_0 ├—C语言程序设计2_0 ├—C语言程序设计3_0 ├—C语言程序设计_0 ├—C语言程序设计导学_0 ├—C语言精彩编程百例_0 ├—Delphi 7_0程序设计教程_0 ├—Delphi 7应用教程_0 ├—Delphi 7数据库开发教程_0 ├—Delphi 7数据库高级教程_0 ├—Delphi 7程序设计_0 ├—Delphi 7课程设计案例精编_0 ├—Delphi 程序设计技能百练_0 ├—DELPHI 经典游戏程序设计40例_0 ├—Delphi串口通信技术与工程实践_0 ├—Delphi数据库开发实例解析_0 ├—Delphi数据库编程_0 ├—Delphi数据库高级实例导航_0 ├—Delphi源代码分析_0 ├—Delphi程序设计_0 ├—Delphi程序设计实训_0 ├—Delphi程序设计教程_0 ├—Delphi精要2_0 ├—Delphi精要_0 ├—DSP 通信工程技术应用_0 ├—DSP信号处理技术应用_0 ├—DSP技术及应用_0 ├—DSP控制系统的设计与实现_0 ├—DSP算法设计与系统方案_0 ├—DSP系统设计与实践_0 ├—DSP芯片的原理与开发应用 (第3版)_0 ├—DSP集成开发环境:CCS及DSP_BIOS的原理与应用_0 ├—DWDM技术原理与应用_0 ├—EDA与数字系统设计_0 ├—EDA工程实践_0 ├—Enterprise Java Bean程序设计实例详解_0 ├—Excel 2003中文版入门与提高_0 ├—IBM PC 80X86汇编语言程序设计_0 ├—IBM信息集成技术原理及应用_0 ├—ICSA密码学指南_0 ├—IEEE 802_11无线局域网_0 ├—IEEE1394接口技术_0 ├—Intel微处理器结构、编程与接口 (第六版)_0 ├—Intel汇编语言程序设计 第四版_0 ├—IP宽带通信网络技术_0 ├—J2EE 应用与实践技巧:JAVA设计模式、自动化与性能_0 ├—J2EE网络编程标准教程_0 ├—J2METM技术手册_0 ├—J2ME开发大全_0 ├—Java 2学习指南——Sun Certified Programmer_0 ├—Java 2实用教程_0 ├—Java 2程序设计技能百练_0 ├—Java 2简明教程_0 ├—Java Web服务开发_0 ├—Java 国际认证(SCJP)典型试题1000例_0 ├—Java 模式_0 ├—Java 游戏编程_0 ├—Java 课程设计案例精编_0 ├—Java与CORBA客户 服务器编程 第二版_0 ├—Java信息系统设计与开发实例_0 ├—Java基础教程_0 ├—Java实用系统开发指南_0 ├—Java实用编程100例_0 ├—Java并发编程:设计原则与模式_0 ├—Java手机_PDA程序设计入门_0 ├—Java数值方法_0 ├—Java数据对象_0 ├—Java数据库高级教程_0 ├—Java数据结构和算法 (第二版)_0 ├—Java极限编程_0 ├—JAVA程序设计2_0 ├—Java程序设计3_0 ├—Java程序设计_0 ├—Java程序设计基础 (第3版)_0 ├—Java程序设计实战训练_0 ├—Java程序设计技巧与开发实例_0 ├—Java程序设计教程_0 ├—Java程序设计高级主题_0 ├—Java算法 (第3版,第1卷)_0 ├—Java编程原理:面向工程和科学人员_0 ├—JAVA缺陷_0 ├—Java网络编程基础_0 ├—Java语言程序设计_0 ├—Java语言程序设计教程_0 ├—Java课程设计_0 ├—Java软件开发2_0 ├—Java软件开发_0 ├—Java项目开发实践_0 ├—Java高级实用编程_0 ├—Jave 2认证考试学习指南 (第四版) (英文版)_0 ├—JBuilder 9_0入门与提高_0 ├—JBuilder 9_0程序设计——Java程序员成功之路_0 ├—JBuilder精髓_0 ├—JSP信息系统设计与开发实例_0 ├—MATLAB 6_5及其在信号处理中的应用_0 ├—MATLAB 6_5图形图像处理_0 ├—MATLAB 7_0实用指南 (上册)_0 ├—MATLAB 7_0实用指南 (下册)_0 ├—MATLAB M语言高级编程_0 ├—Matlab 小波分析工具箱原理与应用_0 ├—MATLAB与外部程序接口_0 ├—MATLAB仿真技术与应用教程_0 ├—MATLAB仿真技术主导实例应用教程_0 ├—MATLAB信息工程工具箱技术手册_0 ├—MATLAB及其在电路与控制理论中的应用_0 ├—Matlab图像处理与应用_0 ├—MATLAB图形图像处理应用教程_0 ├—MATLAB工具箱应用_0 ├—MATLAB应用数学工具箱技术手册_0 ├—Matlab接口技术与应用_0 ├—MATLAB控制工程工具箱技术手册_0 ├—MATLAB数学计算范例教程_0 ├—MATLAB有限元分析与应用_0 ├—MATLAB电力系统设计与分析_0 ├—MATLAB程序设计_0 ├—MATLAB符号运算及其应用_0 ├—MATLAB自动控制原理习题精解_0 ├—MCS-51单片机原理及应用实例_0 ├—MCS-51系列单片机原理与接口技术_0 ├—MCS-51系列单片机系统及其应用 (第二版)_0 ├—Microsoft SQL Server 2000宝典_0 ├—OP放大电路设计_0 ├—Oracle9i数据库原理与应用教程_0 ├—OrCAD电路设计_0 ├—PCB电磁兼容技术——设计实践_0 ├—PC控制及接口程序设计实例_0 ├—PIC 单片机原理与接口技术_0 ├—PowerBuilder9_0数据窗口技术_0 ├—PowerPCB高速电子电路设计与应用_0 ├—Protel 2004电路原理图及PCB设计_0 ├—Protel 99 SE印制电路板设计教程_0 ├—Protel 99 SE原理图与PCB及仿真_0 ├—Protel DXP 电路原理图设计指南_0 ├—Protel DXP印制电路板设计指南_0 ├—Protel DXP电路原理图与PCB设计_0 ├—Protel DXP电路原理图与电路板设计教程_0 ├—Protel DXP电路图及电路板设计实用教程_0 ├—Protel DXP电路设计与仿真_0 ├—Protel DXP电路设计与制版实用教程_0 ├—Protel DXP电路设计与应用2_0 ├—Protel DXP电路设计入门与应用_0 ├—Protel DXP电路设计入门与进阶_0 ├—Protel DXP电路设计制版入门与提高_0 ├—Protel DXP电路设计标准教程_0 ├—PSpice 电路优化程序设计_0 ├—PSpice 电路设计实用教程_0 ├—PSpice电路原理与实现_0 ├—PSpice电路编辑程序设计_0 ├—PWM控制与驱动器使用指南及应用电路:单端控制与驱动器部分_0 ├—Red Hat Linux安全与优化_0 ├—Tanner Pro集成电路设计与布局实战指导_0 ├—TMS320C500系列DSP系统设计与开发实例_0 ├—TMS320C54x DSP应用程序设计教程_0 ├—TMS320LF_LC24系列DSP的CPU与外设_0 ├—UML及其建模工具的使用_0 ├—UML宝典_0 ├—UML工具箱_0 ├—USB 接口技术_0 ├—Verilog HDL数字设计与综合 (第二版)_0 ├—Verilog HDL程序设计教程_0 ├—Verlog HDL 综合实用教程_0 ├—VHDL与微机接口设计_0 ├—VHDL数字系统设计 (第二版)_0 ├—VHDL电路设计实用教程_0 ├—VHDL电路设计技术_0 ├—Visual Basic 6_0实践指导_0 ├—Visual Basic 6_0应用编程150例_0 ├—Visual Basic 程序设计教程_0 ├—Visual Basic6_0数据库开发技术与工程实践_0 ├—Visual Basic_NET程序设计实训教程_0 ├—Visual Basic程序设计2_0 ├—Visual Basic程序设计_0 ├—Visual C#_NET程序设计经典_0 ├—Visual C++ 6_0应用编程150例_0 ├—Visual C++ 6_0数据库开发技术与工程实践_0 ├—Visual C++6_0数字图像编码_0 ├—Visual C++_MATLAB图像处理与识别实用案例精选_0 ├—Visual C++_NET数字图像处理技术与应用_0 ├—Visual C++_NET程序设计入门_0 ├—Visual C++_NET编程实例_0 ├—Visual C++_Turbo C串口通信编程实践_0 ├—Visual C++数字图像实用工程案例精选_0 ├—Visual C++网络通信程序开发指南_0 ├—Visual C++网络通信编程实用案例精选_0 ├—Visual FoxPro上机实践指导教程_0 ├—Visual FoxPro程序设计教程_0 ├—Visual Prolog编程、环境及接口_0 ├—VisualC++_NET MFC类库应用详解_0 ├—WCDMA技术与系统设计:第三代移动通信系统的无线接入_0 ├—WCDMA无线通信技术及演化_0 ├—WCDMA移动通信技术_0 ├—Win32汇编语言实用教程_0 ├—Windows安全性编程_0 ├—XML编程实例教程_0 ├—·工程数学·复变函数_0 ├—《Visual Basic程序设计教程》实验与习题_0 ├—《中华人民共和国电子签名法》释义及实用指南_0 ├—《汇编语言与微机原理》学习指导与训练_0 ├—《集成电子技术基础教程》教学指导书_0 ├—三星电子绝处逢生的强悍之道_0 ├—三级信息管理技术_0 ├—三级信息管理技术:新大纲_0 ├—专用集成电路_0 ├—世界著名大学核心教材 计算机类 C语言程序设计_0 ├—中国半导体行业协会集成电路设计分会推荐教材 集成电路设计与九天EDA工具应用_0 ├—中国电子信息产品出口研究报告_2003_0 ├—中文 Visual Basic 6_0实例教程_0 ├—中文CorelDRAW 11_12时尚创作200例_0 ├—中文Visual Basic实例全解教程_0 ├—企业商务电子化导论_0 ├—企业电子商务_0 ├—使用UML进行面向对象的项目管理_0 ├—例题解析电子电路:数字篇_0 ├—例题解析电子电路:模拟篇_0 ├—信号、系统与数字信号处理_0 ├—信号、系统与数字信号处理学习指导与实践_0 ├—信号与系统典型题解2_0 ├—信号与系统典型题解_0 ├—信号与系统分析2_0 ├—信号与系统分析_0 ├—信号与系统学习与考研指导2_0 ├—信号与系统学习与考研指导_0 ├—信号与系统学习指导2_0 ├—信号与系统学习指导3_0 ├—信号与系统学习指导4_0 ├—信号与系统学习指导_0 ├—信号与系统教程2_0 ├—信号与系统教程_0 ├—信号与系统课程辅导_0 ├—信号与线性系统分析 (第二版)_0 ├—信号分析与处理_0 ├—信号处理中的数学变换和估计方法_0 ├—信号处理原理与应用_0 ├—信号处理滤波器设计_0 ├—信息与传播_0 ├—信息与计算科学专业系列教材 数字信号处理_0 ├—信息与通信工程研究生系列教材 信息论与编码_0 ├—信息与通信工程研究生系列教材 图论及其应用_0 ├—信息光学理论与应用_0 ├—信息化与中国经济跨越式发展_0 ├—信息化工程原理与应用_0 ├—信息安全原理与应用 (第三版)_0 ├—信息安全教学基础_0 ├—信息安全策略与机制_0 ├—信息技术与电子政务 (通用版)——信息时代的电子政府_0 ├—信息技术与课程整合的理论与方法_0 ├—信息技术及其应用_0 ├—信息技术基础_0 ├—信息技术基础教程_0 ├—信息技术基础教程实验及上机指导_0 ├—信息技术法 (第二版)_0 ├—信息技术的商业价值_0 ├—信息方法概论_0 ├—信息时代的企业人力资源管理_0 ├—信息时代的管理信息系统 (原书第四版)_0 ├—信息检索与利用_0 ├—信息理论与编码2_0 ├—信息理论与编码_0 ├—信息竞争论_0 ├—信息管理与信息系统专业规划教材 管理信息系统_0 ├—信息管理论_0 ├—信息系统分析与设计教程_0 ├—信息系统升级与整合:策略·方法·技巧_0 ├—信息系统安全管理_0 ├—信息系统集成技术 (第二版)_0 ├—信息系统项目管理导论_0 ├—信息经济学_0 ├—信息经济学与信息管理_0 ├—信息经济学引论:激励与合约 (第二版)_0 ├—信息经济论_0 ├—信息网络传播权研究_0 ├—信息网络经济的管理与调控:美国“新经济周期”研究_0 ├—信息论与编码理论 第二版_0 ├—信息资源管理_0 ├—信息隐藏与数字水印_0 ├—信息隐藏技术实验教程_0 ├—先进PID控制MATLAB仿真 (第二版)_0 ├—光信息网络_0 ├—光信息通信技术实用手册_0 ├—光纤通信_0 ├—光纤通信原理与技术_0 ├—光纤通信技术_0 ├—光纤通信系统原理与实验教程_0 ├—光纤通信系统及其应用_0 ├—光纤通信:通信用光纤、器件和系统_0 ├—全光光纤通信网_0 ├—全国信息技术人才培养工程指定培训教材 平面设计基础_0 ├—全国大学生电子设计竞赛获奖作品汇编:第一届-第五届_0 ├—全国计算机技术与软件专业技术资格(水平)考试·程序员分册_0 ├—全国计算机技术与软件专业技术资格(水平)考试·网络工程师分册_0 ├—全国计算机技术与软件专业技术资格(水平)考试·网络管理员分册_0 ├—全国计算机技术与软件专业技术资格(水平)考试·软件设计师分册_0 ├—全国计算机等级考试三级教程 信息管理技术_0 ├—全国计算机等级考试三级模拟题精选与详解 信息管理技术_0 ├—全国计算机等级考试三级模拟题解 信息管理技术_0 ├—全国计算机等级考试三级辅导 信息管理技术_0 ├—全国计算机等级考试二级教程:基础知识和Java语言程序设计_0 ├—全国计算机等级考试二级模拟题解:基础知识和Java语言程序设计_0 ├—全国计算机等级考试应试辅导 QBASIC语言(二级)难点、错点解析_0 ├—全国计算机等级考试教程 信息管理技术 (三级) (2004修订版)_0 ├—全国计算机等级考试考点分析、题解与模拟 (三级信息管理技术)_0 ├—全国计算机等级考试(三级信息管理技术)一册通_0 ├—公司信息战略与管理:教程与案例 (原书第6版)_0 ├—内容产业论:数字新媒体的核心_0 ├—制造业信息化与信息编码_0 ├—动态网页设计与电子商务_0 ├—北京市高等教育精品教材立项项目 实用电子电路基础_0 ├—半导体分立元器件集成电路装调_0 ├—单片开关电源:应用电路·电磁兼容·PCB布线_0 ├—单片微型计算机原理、应用及接口技术 (第2版)_0 ├—单片机典型模块设计实例导航_0 ├—单片机原理与实用技术_0 ├—单片机原理与应用2_0 ├—单片机原理与应用_0 ├—单片机原理及其接口技术 (第二版)_0 ├—单片机原理及其接口技术 (第二版)_0 ├—单片机原理及其接口技术学习辅导与实践教程_0 ├—单片机原理及应用_0 ├—单片机原理及接口技术2_0 ├—单片机原理及接口技术3_0 ├—单片机原理及接口技术_0 ├—单片机实用技术_0 ├—单片机嵌入式应用的线开发方法_0 ├—单片机应用技术_0 ├—单片机应用系统设计与产品开发_0 ├—单片机控制工程实践技术_0 ├—卫星通信系统_0 ├—四维时空逻辑_0 ├—国外电子与通信教材系列 信号与系统 (第二版)_0 ├—国外经典教材 C++数据结构与程序设计_0 ├—国外经典计算机科学教材 逻辑与计算机设计基础 (第三版)_0 ├—国外著名高等院校信息科学与技术优秀教材 C算法 第一卷,基础、数据结构、排序和搜_0 ├—国外著名高等院校信息科学与技术优秀教材 密码学概论 (中文版)_0 ├—国外著名高等院校信息科学与技术优秀教材 面向对象编程 C++和Java 比较教程_0 ├—国外计算机科学教材系列 现代编译器的Java实现 (第二版)_0 ├—国外计算机科学经典教材 JAVA 基础教程:从问题分析到程序设计_0 ├—国外计算机科学经典教材 数据结构 Java 语言描述 (第二版)_0 ├—国外高校电子信息类优秀教材 (翻译版) 压缩视频通信_0 ├—国家信息化技术培训指定教材 硬件维护工程师标准培训教程_0 ├—国防科工委十五规划教材 网络与信息安全_0 ├—国际电子商务培训认证专用教材 国际电子商务程序设计教程_0 ├—国际电子商务概论_0 ├—图像信息压缩_0 ├—图像数字记录_0 ├—图像编码基础和小波压缩技术——原理、算法和标准_0 ├—图表细说电子元器件_0 ├—图解晶体管实用电路_0 ├—图解电工电子基础_0 ├—基于Java的计算机图形学_0 ├—基于MCS-51单片机的嵌入式系统设计_0 ├—声光信号处理及应用_0 ├—复变函数与拉普拉斯变换习题指导_0 ├—复变函数与积分变换学习指导_0 ├—复变函数论与运算微积_0 ├—大型软件体系结构:使用UML实践指南_0 ├—大学信息技术基础教程_0 ├—大学生素质教育系列教材 复变函数学习指导_0 ├—大学英语六级词汇背诵词典 ├—大学计算机信息技术学习指导_0 ├—大学计算机基础教育规划教材 Visual Basic NET程序设计_0 ├—大容量数据存储系统编码_0 ├—天津市高等学校计算机基础课程规划教材 C程序设计教程 (第二版)_0 ├—奇思异想编程序 Delphi篇_0 ├—学习指导与题典:离散数学_0 ├—学习指导与题典:计算机网络与通信_0 ├—完整的数字设计_0 ├—实用化工计算机模拟:MATLAB在化学工程中的应用_0 ├—实用射频技术_0 ├—实用电动机控制电路200例_0 ├—实用电工与电子技术问答_0 ├—实用电工电路图集_0 ├—实用电路基础_0 ├—实用软件测试过程_0 ├—实验电子技术_0 ├—宽带移动通信中的先进信道编码技术_0 ├—宽带通信_0 ├—宽带通信网与组网技术_0 ├—小波分析信息传输基础_0 ├—小灵通(PAS)个人通信接入系统 (修订版)_0 ├—嵌入式微处理器模拟接口设计 (第二版)_0 ├—嵌入式软件测试_0 ├—工程电磁场数值计算_0 ├—差错控制编码_0 ├—常用充电器电路与应用_0 ├—应用程序设计编制(Delphi 平台)Delphi 6_0_7_0职业技能培训教程_0 ├—建筑物电子信息系统防雷技术设计手册_0 ├—建筑电气常用设备模块化控制电路图集_0 ├—建筑通信与网络技术_0 ├—开发专家之Sun ONE J2EE技术参考手册_0 ├—彩色图像工程_0 ├—彩色电视机单元电路应用与维修手册_0 ├—微型计算机原理与接口技术3_0 ├—微型计算机原理与接口技术_0 ├—微型计算机硬件技术教程-原理·汇编·接口及体系结构_0 ├—微处理机原理与接口技术_0 ├—微控制器原理及接口技术实验教程_0 ├—微机原理与接口技术2_0 ├—微机原理与接口技术4_0 ├—微机原理与接口技术_0 ├—微机原理与接口技术综合实验教程_0 ├—微机原理及接口技术实验教程_0 ├—微机原理及软硬件接口技术_0 ├—微机接口技术500问_0 ├—微波固态电路_0 ├—微波工程基础_0 ├—微波技术2_0 ├—微波技术_0 ├—微观信息管理_0 ├—快速开发信息管理系统:新平台、新方法_0 ├—怎样用电脑设计电子线路_0 ├—怎样看楼宇常用设备电气控制电路图_0 ├—振荡电路的设计与应用_0 ├—捉虫历险记——常见C++Bug大围剿_0 ├—控制工程与信号处理_0 ├—控制系统MATLAB计算机及仿真 (第二版)_0 ├—操作系统原理Linux篇_0 ├—数字万用表检测方法与应用 (世纪新版)_0 ├—数字与逻辑电路 ├—数字专用集成电路的设计与验证_0 ├—数字信号处理2_0 ├—数字信号处理3_0 ├—数字信号处理_0 ├—数字信号处理典型题解及自测试题_0 ├—数字信号处理原理及实现_0 ├—数字信号处理实践方法 (第2版)_0 ├—数字信号处理教程:MATLAB释义与实现_0 ├—数字信号处理:系统分析与设计_0 ├—数字信号微处理器的原理与开发 (第二版)_0 ├—数字制造_0 ├—数字化战场_0 ├—数字化测量技术与应用_0 ├—数字化网络化制造技术_0 ├—数字图像处理及应用_0 ├—数字城堡_0 ├—数字城市建设的理论与策略_0 ├—数字媒体:作品观摩与点评_0 ├—数字广播电视技术文选_0 ├—数字微波通信_0 ├—数字技术与著作权:观念、规范与实例_0 ├—数字时代的影像制作_0 ├—数字时代的电视图像_0 ├—数字显示测量仪表_0 ├—数字电子技术_0 ├—数字电子技术基础 (第四版) 全程辅导_0 ├—数字电子技术基础 (第四版) 导教·导学·导考_0 ├—数字电子技术基础_0 ├—数字电视原理_0 ├—数字电视广告_0 ├—数字电路与逻辑设计教程2_0 ├—数字电路与逻辑设计教程_0 ├—数字电路设计完全手册_0 ├—数字的美术——CorelDRAW Illustrator艺术插画设计经典案例剖析_0 ├—数字签名原理及技术_0 ├—数字系统设计:从数字技术基础到ASIC设计的解析_0 ├—数字系统逻辑设计 ├—数字系统逻辑设计3_0 ├—数字系统逻辑设计_0 ├—数字视频解决方案:创建、编辑与共享数字视频_0 ├—数字设计 (第三版)_0 ├—数字通信技术_0 ├—数字逻辑 ├—数字逻辑2_0 ├—数字逻辑_0 ├—数字逻辑与VHDL设计_0 ├—数字逻辑基础 ├—数字逻辑基础_0 ├—数字逻辑技术基础_0 ├—数字逻辑电路_0 ├—数字逻辑电路的ASIC设计2_0 ├—数字逻辑电路的ASIC设计_0 ├—数字逻辑电路设计 ├—数字逻辑电路设计2_0 ├—数字逻辑电路设计_0 ├—数字逻辑电路设计与实现_0 ├—数字逻辑的图形方法2_0 ├—数字逻辑的图形方法_0 ├—数字集成电路与嵌入式内核系统可测试性设计_0 ├—数字集成电路:电路、系统与设计 (第二版)_0 ├—数字集群 移动通信系统 (第二版)_0 ├—数学物理方法_0 ├—数学物理方程及其近似方法_0 ├—数据库系统工程师教程_0 ├—数据库系统工程师考试大纲_0 ├—数据结构(C语言版)导教·导学·导?br>

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容