USBBlaster是一款由Altera公司开发的用于JTAG(JointTestActionGroup)编程和调试FPGA(Field-ProgrammableGateArray)芯片的设备。
它通过USB接口与计算机连接,为用户提供了方便快捷的FPGA编程方案。
USBBlaster的工作原理是利用USB通信协议将数据传输到一个内置的CPLD(ComplexProgrammableLogicDevice),然后CPLD通过JTAG接口与FPGA进行交互。
在"USBBlaster制作资料"中,我们可能会接触到以下几个关键知识点:1.**USB通信协议**:USB(UniversalSerialBus)是一种标准的接口,用于连接各种外部设备到计算机。
USBBlaster利用USB协议传输数据,它遵循USB规范中的设备类定义,例如CDC(CommunicationDeviceClass)或HID(HumanInterfaceDevice)类,以实现数据的高速、稳定传输。
2.**JTAG协议**:JTAG是一种国际标准测试协议,用于电路板级的硬件测试和调试。
在FPGA应用中,JTAG被用来编程、测试和诊断FPGA内部逻辑。
JTAG接口通常包括TMS(TestModeSelect)、TDI(TestDataIn)、TDO(TestDataOut)和TCK(TestClock)信号线,这些信号线在USBBlaster中由CPLD管理。
3.**CPLD**:CPLD是一种可编程逻辑器件,可以配置为实现用户自定义的逻辑功能。
在USBBlaster中,CPLD扮演了关键角色,它接收来自USB接口的数据,处理后通过JTAG接口发送到FPGA,同时也接收FPGA的反馈信息,从而实现FPGA的编程和调试。
4.**原理图**:提供的原理图会详细展示USBBlaster的硬件设计,包括USB接口电路、CPLD配置、JTAG接口以及电源管理等部分。
通过分析原理图,我们可以理解各个组件如何协同工作,以及如何根据需要进行硬件修改或定制。
5.**固件程序**:固件是运行在硬件设备上的软件,对于USBBlaster,这可能包括USB控制器的驱动程序和CPLD的配置文件。
固件程序确保USB接口正确地与主机通信,并控制CPLD执行JTAG操作。
6.**烧写软件**:为了将固件程序和CPLD配置加载到硬件上,我们需要特定的烧写工具。
这类软件通常支持图形界面,方便用户选择要加载的文件,监测编程过程,并提供错误检查和诊断功能。
7.**CPLD程序**:CPLD程序是指配置CPLD的逻辑代码,它定义了CPLD如何处理USB数据并控制JTAG接口。
这种代码通常使用硬件描述语言(如VHDL或Verilog)编写,并通过专用的编译工具转换成配置文件。
通过这个压缩包,学习者不仅可以了解USBBlaster的工作原理,还可以动手制作自己的USBBlaster,这对于FPGA开发者来说是一项宝贵的实践经验。
同时,这也涉及到电子工程、计算机硬件和嵌入式系统等多个领域的知识,有助于提升综合技能。
2025/7/23 6:41:06 2.14MB USB Blaster
1
oduleGPS ( //////////////////// ClockInput //////////////////// CLOCK_24, // 24MHz CLOCK_27, // 27MHz CLOCK_50, // 50MHz EXT_CLOCK, // ExternalClock //////////////////// PushButton //////////////////// KEY, // Pushbutton[3:0] //////////////////// DPDTSwitch //////////////////// SW, // ToggleSwitch[9:0] //////////////////// 7-SEGDispaly //////////////////// HEX0, // SevenSegmentDigit0 HEX1, // SevenSegmentDigit1 HEX2, // SevenSegmentDigit2 HEX3, // SevenSegmentDigit3 //////////////////////// LED //////////////////////// LEDG, // LEDGreen[7:0] LEDR, // LEDRed[9:0] //////////////////////// UART //////////////////////// UART_TXD, // UARTTransmitter UART_RXD, // UARTReceiver ///////////////////// SDRAMInterface //////////////// DRAM_DQ, // SDRAMDatabus16Bits DRAM_ADDR, // SDRAMAddressbus12Bits DRAM_LDQM, // SDRAMLow-byteDataMask DRAM_UDQM, // SDRAMHigh-byteDataMask DRAM_WE_N, // SDRAMWriteEnable DRAM_CAS_N, // SDRAMColumnAddressStrobe DRAM_RAS_N, // SDRAMRowAddressStrobe DRAM_CS_N, // SDRAMChipSelect DRAM_BA_0, // SDRAMBankAddress0 DRAM_BA_1, // SDRAMBankAddress0 DRAM_CLK, // SDRAMClock DRAM_CKE, // SDRAMClockEnable //////////////////// FlashInterface //////////////// FL_DQ, // FLASHDatabus8Bits FL_ADDR, // FLASHAddressbus22Bits FL_WE_N, // FLASHWriteEnable FL_RST_N, // FLASHReset FL_OE_N, // FLASHOutputEnable FL_CE_N, // FLASHChipEnable //////////////////// SRAMInterface //////////////// SRAM_DQ, // SRAMDatabus16Bits SRAM_ADDR, // SRAMAddressbus18Bits SRAM_UB_N, // SRAMHigh-byteDataMask SRAM_LB_N, // SRAMLow-byteDataMask SRAM_WE_N, // SRAMWriteEnable SRAM_CE_N, // SRAMChipEnable SRAM_OE_N, // SRAMOutputEnable //////////////////// SD_CardInterface //////////////// SD_DAT, // SDCardData SD_DAT3, // SDCardData3 SD_CMD, // SDCardCommandSignal SD_CLK, // SDCardClock //////////////////// USBJTAGlink //////////////////// TDI, //CPLD->FPGA(datain) TCK, //CPLD->FPGA(clk) TCS, //CPLD->FPGA(CS) TDO, //FPGA->CPLD(dataout) //////////////////// I2C //////////////////////////// I2C_SDAT, // I2CData I2C_SCLK, // I2CClock //////////////////// PS2 //////////////////////////// PS2_DAT, // PS2Data PS2_CLK, // PS2Clock //////////////////// VGA //////////////////////////// VGA_HS, // VGAH_SYNC
2024/10/16 5:07:29 906B GPS FPGA
1
高光谱成像的应用效果非常依赖于所获取的图像信噪比(SNR)。
在高空间分辨率下,帧速率高、信噪比低,由于光谱成像包含了两维空间-光谱信息,不能使用时间延迟积分(TDI)模式解决光能量弱的问题;目前多采用摆镜降低应用要求,但增加了体积和质量,获取的图像不连续,且运动部件降低了航天的可靠性。
基于此,将超高速电子倍增与成像光谱有机结合,构建了基于电子倍增的高分辨率高光谱成像链模型,综合考虑辐射源、地物光谱反射、大气辐射传输、光学系统成像、分光元件特性、探测器光谱响应和相机噪声等各个环节,可用于成像链路信噪比的完整分析。
采用LOWTRAN7软件进行大气辐射传输计算,对不同太阳高度角和地物反射率计算像面的照度,根据电子倍增电荷耦合器件(EMCCD)探测器的噪声模型,计算出不同工作条件下的SNR。
对SNR的分析和实验,选择适当的电子倍增增益,可使微弱光谱信号SNR提高6倍。
2024/2/10 13:49:08 10.84MB 探测器 高光谱成 信噪比 电子倍增
1
某开源防火墙源代码TDI网络过滤驱动开发
2023/12/10 5:03:55 45KB tdi 驱动开发 驱动 网络过滤
1
有一些使用环境下,比如:某程序作者停止更新了,我们又没有源码,如果要继续用程序,那就得用IP重定向功能了。
以前是可以用APIHOOK和LSP来做的,现在的程序或者游戏好多都有保护,所以以前的方法不可行了,最好的办法是用TDI及WFP驱动来实现IP重定向功能!WFP及TDI拦截网络数据,然后R3使用层来取得IP实现IP重定向功能。
最终就实把了把目标进程中的某个IP或者全部网络数据,转发到指定的IP上。
1
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡