最新日志

发表于:2008-4-7 17:23:16
标签:NIOS|PC|串口通信  

0

PC向NIOSII串口通信源码

    关于PC串口通信,最简单的就是利用库函数实现,如:MSC 的 _bios_serialcom() 和TC下的 bioscom() 函数。本程序是通过PC的基本I/O函数实现文件的传送的。

点击看大图

 

 

点击此处查看原文 >>

系统分类: CPLD/FPGA   |    用户分类:    |    来源: 原创

评论(0) | 阅读(332)
发表于:2008-3-30 17:57:31
标签:Uart  core  |  NiosII  

0

基于NiosII与PC数据通信的源码实现

利用Altera公司的UART core 即可和PC进行数据通信。关于UART coreAltera 提供的资料是这样描述的:

The universal asynchronous receiver/transmitter core with Avalon  interface (UART core) implements a method to communicate serial character streams between an embedded system on an Altera FPGA and an external device. The core implements the RS-232 protocol timing, and provides adjustable baud rate, parity, stop and data bits, and optional RTS/CTS flow control signals. The feature set is configurable, allowing designers to implement just the necessary functionality for a given system.

 

 

 pdf

点击此处查看原文 >>

系统分类: CPLD/FPGA   |    用户分类:    |    来源: 原创

评论(0) | 阅读(319)
发表于:2007-12-4 22:29:14
标签:等精度数字频率计  

0

基于FPGA/NiosII的等精度数字频率计的设计

基于FPGA/NiosII的等精度数字频率计的设计
有以下特点:
    1. CPU并行处理   32位软核处理器 NiosII 、处理速度为75MHZ
        标准计数器,处理速度为100MHZ
      2. 频率测量范围宽未知,已测值为20MHZ以上
        理论精度为1e8,可精确到0.00000001hz
      3. 占空比测量
        理论精度为1e8,可精确到一千万分之一

基于FPGA的等精度频率测量的精度是非常之高的,其测量精度只取决于标准计数器(忽略传输延时)的处理速度,而且理论测量误差最多只有标准技术时钟的一个周期。
本次设计中,加入NiosII作控制显示作用,和计数器之间为并行关系,两者各自独立工作互不影响。
计数器时钟为100MHz

FPGA底层模块由 2个PLL、1个频率测量模块、1个分频计模块 、NiosII构成

pdfdoc

点击此处查看原文 >>

系统分类: CPLD/FPGA   |    用户分类:    |    来源: 原创

评论(2) | 阅读(953)
发表于:2007-11-14 21:52:27
标签:Avalon  Bus  

0

Avalon总线学习

Avalon总线具有以下基本特点:

   ● 所有外设的接口与Avalon总线时钟同步,不需要复杂的握手/应答机制。这样就简化了Avalon总 线的时序行为,而且便于集成高速外设。Avalon总线以及整个系统的性能可以采用标准的同步时序分析技术来评估。

  ●  所有的信号都是高电平或低电平有效,便于信号在总线中高速传输。在Avalon总线中,由数据选择器(而不是三态缓冲器)决定哪个信号驱动哪个外设。因此外设即使在未被选中时也不需要将输出置为高阻态。

  ●  为了方便外设的设计,地址、数据和控制信号使用分离的、专用的端口。外设不需要识别地址总线周期和数据总线周期,也不需要在未被选中时使输出无效。分离的地址、数据和控制通道还简化了与片上用户自定义逻辑的连接 。

AValon总线还包括许多其他特性和约定,用以支持SOPC Builder软件自动生成系统、总线和外设,包括:    

●  最大4GB的地址空间——存储器和外设可以映像到32位地址空间中的任意位置

●  内置地址译码——Avalon总线自动产生所有外设的片选信号,极大地简化了基于Avalon总线的外设的设计工作

●  多主设备总线结构——Avalon总线上可以包含多个主外设,并自动生成仲裁逻辑

●  采用向导帮助用户配置系统——SOPC Builder提供图形化的向导帮助用户进行总线配置(添加外设、指定主/从关系、定义地址映像等)。Avalon总线结构将根据用户在向导中输入的参数自动生成

●  动态地址对齐——如果参与传输的双方总线宽度不一致,Avalon总线自动处理数据传输的细节,使得不同数据总线宽度的外设能够方便地连接

Avalon 总线模块为连接到总线的Avalon 外设提供了以下的服务:

■ 数据通道多路转换——Avalon 总线模块的多路复用器从被选择的从外设向相关主外设传输数据。

■ 地址译码——地址译码逻辑为每一个外设提供片选信号。这样,单独的外设不需要对地址线译码以产生片选信号,从而简化了外设的设计。

■ 产生等待状态(Wait-State)——等待状态的产生拓展了一个或多个周期的总线传输,这有利于满足某些特殊的同步外设的需要。当从外设无法在一个时钟周期内应答的时候,产生的等待状态可以使主外设进入等待状态。在读使能及写使能信号需要一定的建立时间/保持时间要求的时候也可以产生等待状态。

■ 动态总线宽度——动态总线宽度隐藏了窄带宽外设与较宽的Avalon 总线(或者Avalon 总线与更高带宽的外设)相接口的细节问题。举例来说,一个32 位的主设备从一个16 位的存储器中读数据的时候,动态总线宽度可以自动的对16 位的存储器进行两次读操作,从而传输32 位的数据。这便减少了主设备的逻辑及软件的复杂程度,因为主设备不需要关心外设的物理特性。

■ 中断优先级(Interrupt-Priority)分配——当一个或者多个从外设产生中断的时候,Avalon 总线模块根据相应的中断请求号(IRQ)来判定中断请求。

■ 延迟传输(Latent Transfer)能力——在主、从设备之间进行带有延迟传输的逻辑包含于Avalon总线模块的内部。

■ 流式读写(Streaming Read and Write)能力——在主、从设备之间进行流传输使能的逻辑包含于Avalon 总线模块的内部。

点击此处查看原文 >>

系统分类: CPLD/FPGA   |    用户分类:    |    来源: 整理

评论(0) | 阅读(872)
发表于:2007-10-30 23:51:07
标签:无标签

0

Wire 与 Reg 的区别(Verilog)

数据类型 Wire 与 Reg 的区别,以下是网上资料的整理(不知道是不是官方的解释,学习ing...):

====================================
There are two main groups of data types: the register data types and the net data types.(others only include: parameter, specparam, event ).

The net data types represent physical connections between structural entities,
such as gates. A net does not store a value (except for the trireg net).

A register is an abstraction of a data storage element.

A register stores a value from one assignment to the next.
An assignment statement in a procedure acts as a trigger that changes the value in the data storage element.
The default initialization value for a reg data type is the unknown value, x.
====================================
Register data types are used as variables in procedural blocks.
Registers store logic values only (no logic strength).
A register data type must be used when the signal is on the left-hand side of a procedural assignment. (quartus II 编译时常见的报错信息)
====================================
Net data types connect structural components together.
Nets transfer both logic values and logic strengths.
A net data type must be used when:
A signal is driven by the output of some device.
A signal is also declared as an input port or inout port.
A signal is on the left-hand side of a continuous assignment.

在线学习Verilog:  http://www.sutherland-hdl.com/on-line_ref_guide/vlog_ref_top.html

点击此处查看原文 >>

系统分类: CPLD/FPGA   |    用户分类:    |    来源: 整理

评论(0) | 阅读(1075)
发表于:2007-10-26 18:18:25
标签:Keil  Proteus  

0

Keil for ARM 与 Proteus7.1的完美联调!

只因有你----Proteus ,勿需硬件开发板,照样也可以玩转单片机,玩转ARM!  haha!

      Keil 与 Proteus 联调早有不少解决方案。然而几乎都是 Keil C (单片机) 与Proteus的联调,且均是Proteus6.9的联调。很少发现有与proteus7.1版本的联调教程。由于本人用的是Proteus7.1, Keil for ARM(uversion3)。曾在网上搜索现成版本方案,终没有发现。苦于无奈,只好自己动手解决,现把联调原理,和联调实例与调试方法做成教程方便大家使用,同样,与大家分享成功的喜悦!

download it directly :pdf 

点击此处查看原文 >>

系统分类: 嵌入式   |    用户分类:    |    来源: 原创

评论(5) | 阅读(2611)
发表于:2007-8-19 14:33:10
标签:LCD1602|编程  

1

把LCD1602程序模块化

把LCD1602程序模块化

本文把液晶LCD1602的程序做成模块化,程序简洁明了,在编写程序的时候只需调用模块子程序,即可实现对LCD1602的编程,从而轻松搞定LCD1602.编程语言是用mcs51汇编语言,文本中附有仿真实例,令附有用C编写的程序模块,对喜欢用C编程的人来说,是非常实用和方便的。

仿真图片如下:

点击看大图

 

pdf文档太大上传不了,请到这里:itspy.51.com  留下你的 EMAIL

点击此处查看原文 >>

系统分类: 单片机   |    用户分类:    |    来源: 原创

评论(19) | 阅读(1224)
发表于:2007-8-15 23:50:58
标签:配置  

1

关于ACEX1K EP1K30TC144-3的配置资料

   关于ACEX1K  EP1K30TC144-3的配置资料

 

 

    最近在学习关于单片机配置FPGA的知识,看了一些英文资料,现摘抄整理出来,从中可以了解FPGA配置的原理和流程.

----------------------------

Configuration &Operation

The ACEX 1K architecture supports several configuration schemes. This section summarizes the device operating modes and available device configuration schemes.

Operating Modes

The ACEX 1K architecture uses SRAM configuration elements that require configuration data to be loaded every time the circuit powers up.The process of physically loading the SRAM data into the device is called configuration. Before configuration, as VCC rises, the device initiates a Power-On Reset (POR). This POR event clears the device and prepares it for configuration. The ACEX 1K POR time does not exceed 50 μs.

  When configuring with a configuration device, refer to the relevant configuration device data sheet for POR timing information.

During initialization, which occurs immediately after configuration, the device resets registers, enables I/O pins, and begins to operate as a logic device. Before and during configuration, all I/O pins (except dedicated inputs, clock, or configuration pins) are pulled high by a weak pull-up resistor. Together, the configuration and initialization processes are called command mode; normal device operation is called user mode.SRAM configuration elements allow ACEX 1K devices to be reconfigured in-circuit by loading new configuration data into the device. Real-time reconfiguration is performed by forcing the device into command mode with a device pin, loading different configuration data, re-initializing the device, and resuming user-mode operation. The entire reconfiguration process requires less than 40 ms and can be used to reconfigure an entire system dynamically. In-field upgrades can be performed by distributing

new configuration files.

Configuration Schemes

The configuration data for an ACEX 1K device can be loaded with one of five configuration schemes (see Table 59), chosen on the basis of the target application. An EPC16, EPC2, EPC1, or EPC1441 configuration device, intelligent controller, or the JTAG port can be used to control the

configuration of a ACEX 1K device, allowing automatic configuration on system power-up. Multiple ACEX 1K devices can be configured in any of the five configuration schemes by connecting the configuration enable (nCE) and configuration enable output (nCEO) pins on each device. Additional APEX 20K, APEX 20KE, FLEX 10K, FLEX 10KA, FLEX 10KE, ACEX 1K,

and FLEX 6000 devices can be configured in the same serial chain.

 

完整资料点击下载:pdf

点击此处查看原文 >>

系统分类: CPLD/FPGA   |    用户分类:    |    来源: 整理

评论(0) | 阅读(820)
发表于:2007-8-14 23:21:18
标签:VHDL|HDB3编码  

1

VHDL实现HDB3编码

HDB3 码是数字基带传输系统中的常用码型,其全称是3阶高密度双极性码,它是AMI 码的一种改进型。

其编码规则如下:

(1)当么有4个过4个以上连0串时,仍按AMI 码的规则进行编码,即传号极性交替;

2)当出现4个或4个以上连0串时,则将第4 个“0”改为非“0”脉冲,记为+V 或-V,称之为破坏脉冲。相邻V 码的极性必须交替出现,以确保编码码无直流特性;

(3)为了便于识别,V 码的极性应与其前一个非“0”脉冲的极性相同,否则,将四连“0”的第一个“0”更改为与该破坏脉冲相同极性的脉冲,并记为+B 或-B;

(4)破坏脉冲之后的传号码极性也要交替。例如:

代码: 1000 0 1000 0 1 1 000 0 l 1

AMI 码: -1000 0 +1000 0 -1 +1 000 0 -1 +1

HDB3 码: -1000 -V +1000 +V -1 +1 -BOO -V +l -1

从上述原理可以看出:每一个破坏符号V总是与前一非0符号同极性(包括B在内)。在译码时根据这一原则,可以从待解码符号序列中容易找到破坏符号V,于是也断定V符号及其前面的3个符号必是连0符号,从而,恢复4个连0码,再将所有-1变成1后便得到原信息代码。HDB3 码保持了AMI 码的优点外,同时还将连“0”码限制在3 个以内,故有利于位定时信号的提取。

编程思想:

首先将代码进行AMI编码,然后判断加V,加B。如果有四个连0出现,即cnt_0=3(第四个0)时,进行加V,否不加VV的符号跟前一非0的符号相同(包括加B后)。如果已经有加V后,为了保证V的“极性交替反转”,两个V之间的非0个数如为偶数则加B,否不加B。也即根据在V之前判定前一非0符号的正负性判定加B即可。如+V前,pre_nz=’1’,则加-B,否不加B;如-V前,pre_nz=’0’,则加+B,否不加BAMIVB符号的正负都是通过设立信号变量来确定的。最后根据得出的codeout_b码型确定HDB3codeout的输出:

 

codeout_b

 codeout

  代表码

“000”

   00

     0

“001”、“010”、“011

01

-1

100”、“101”、“110”、“111

10

     +1

 
max+plus ii 仿真结果如下:
 
(a)点击看大图
 
(b)点击看大图
 
pdf
 

点击此处查看原文 >>

系统分类: CPLD/FPGA   |    用户分类:    |    来源: 原创

评论(23) | 阅读(1907)
发表于:2007-8-11 23:56:18
标签:单片机|数字调制器  

2

2ASK/2FSK数字调制器的设计

      数字调制可分成线性调制和非线性调制两种。二进制振幅键控(2ASK)、移频键控(FSK)和移相键控(PSK)是常见的数字调制信号,其中键控2ASK、2FSK属于线性调制,在数字基带传输系统中应用广泛。二进制振幅,频率键控信号的产生方法通常有两种:即模拟调制方法和键控方法。本文通过键控方法来产生2ASK、2FSK信号。

 

================================================

文中附有全部硬件电路、仿真结果和汇编源程序,可以直接下载,密码请到这里留言获取:itspy.51.com

pdf 

 

点击此处查看原文 >>

系统分类: 通信网络   |    用户分类:    |    来源: 原创

评论(13) | 阅读(1423)
2下一页总共 , 当前 /