Electronics, embedded systems, microchips, fpga's, atmel avr and computers! Do I need to say any more?
Friday, 9 November 2007
Hex pad with LCD output
Files: Hexpad.rar
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
Wednesday, 17 October 2007
Traffic Lights Using Pic 16f84
I connected my leds in this configuration:
R1: B0
Y1: B1
G1: B2
R2: B3
Y2: B4
G2: B5
After this, map out the sequence you want. Mine was the standard sequence for a simple two way traffic light system in the UK. Here it is (format:R1Y1G1R2Y2G2):
100001;
010001;
001001;
001011;
001100;
001010;
001001;
011001;
Just literally translate this line for line into embedded C for the main routine but remember to place delays between each line for however long you want the lights to stay in that state before changing.
Here is my final code:
//Glen Lashley
//Traffic Lights
void InitialisePorts(void)
{
TRISA=0; //Make all ports outputs
TRISB=0;
}
void Routine(void)
{
PORTB = 0b00100001;
Delay_ms(100);
PORTB = 0b00010001;
Delay_ms(100);
PORTB = 0b00001001;
Delay_ms(100);
PORTB = 0b00001011;
Delay_ms(100);
PORTB = 0b00001100;
Delay_ms(100);
PORTB = 0b00001010;
Delay_ms(100);
PORTB = 0b00001001;
Delay_ms(100);
PORTB = 0b00011001;
Delay_ms(100);
}
MAIN(void)
{
InitialisePorts();
while(1)
{
Routine();
}
}
Feel free to question or comment guys! :)
Monday, 15 October 2007
Simple H-Bridge concept
The concept is simple. Use an array of transistors for switching and re-routing the direction in which the current flows.
A picture of this concept is shown below:

Keep in mind that this is a concept and in order for it to work resistors and/or any protection circuits have to be added. Remember that motors give emf and can cause the transistors to burn up. Some people use darlington pairs and relays to trigger a higher voltage (for the motor in this case).
Hope this entry has been of use!
Bootloaders for 16F87X
After initially preparing the pic, just one click of the mouse can update your pic. There is no need to modify your circuit if you want a simple implementation.
It is supported on Linux, Windows and even DOS. Its free to use and distribute without any agreements.
Thanks to http://microchipc.com/PIC16bootload/ , they have made it available for download and many tips, tricks and hints are located there.
Sunday, 14 October 2007
Timer using 16F84A (with internal interrupts), Seven Segment Display and Multiplexing
Step 1.
Create a new project in MikroC using PIC 16f84a. Make the processor speed equal to 4Mhz.
Step 2 - Start Coding!
First we will declare all functions and variables, in MikroC type:
void PortSetup(void); // function that configures MCU's inputs and outputs
void TimerSetup(void); // function to set up timer to interrupt
void interrupt (void); // interrupt service routine
void Convert(void); // function to decode numbers for seven segment display
// global variables
int Huns,Seconds,Segment,Tens,Units;
Now we'll write the main program. Type the following:
void main(void)
{
PortSetup();
TimerSetup();
PORTA = 0b00001; // initialise display
while(1) //endless loop
{
Convert();
}
}
Step 3 - Start coding functions.
First we'll set up the ports on the MCU. For now, we know that all we will be having is outputs to the seven segment, its up to you if you want to include any input buttons at a later time. Type the following in MikroC:
void PortSetup(void)
{
PORTA=0; //clear internal buffers
PORTB=0;
TRISA=0b00000; // program I/O (0==output, 1==input)
TRISB=0b00000000;
Huns = 0;
Seconds = 0;
TMR0 = 100;
}
Next we'll code the time function to interrupt the "while(1)" loop. We want it to be as accurate to a second as possible so we'll make it interrupt every 10 milliseconds. We'll do the math for working out the seconds further on. Type the following in MikroC:
void TimerSetup(void)
{
// function to set up timer to interrupt
// program every 10 Ms
OPTION_REG.PSA = 0; //assigns prescalar to Timer not Watch dog
OPTION_REG.PS0 = 1; //PS2-PS0 assign the prescaler ratio
OPTION_REG.PS1 = 0; // 64
OPTION_REG.PS2 = 1; //
INTCON.GIE = 1; // switch on interrupts
INTCON.T0IE = 1; // enable timer interrupt
INTCON.T0IF = 0; // set interrupt flag
OPTION_REG.T0CS = 0; // start timer
}
The OPTION_REG and INTCON registers were configured using the 16F84a datasheet. If its hard to understand, refer to my values and comments to try and figure it out. Otherwise, just send me an email!
Next is the hardest part! We'll setup the interrupt service routine to deal with the math and multiplexing of the seven segment displays. Multiplexing in this application saves a whole lot of port space. For every seven segment display, eight pins are required; seven for each segment and one common cathode pin (or "on" switch). Instead of using 16 pins (which is impossible), we'll use seven for both displays' data and one extra pin for each common cathode. In short, the total pins used to power two seven segment displays is 9, to power three displays, we need 10 pins and so on. The concept is simple, if we turn on one cathode then we'll send the data on the seven pins that correspond to that display. So if we want to display "32" on both displays, we'll turn on the cathode for for the first display and send the seven seg equivalent of "3" on the seven ports. Then we'll turn of that cathode and turn on the other cathode while sending the seven seg equivalent of "2" on the seven pins. If we do this fast enough, it will appear that "32" is being displayed when in actual fact they are changing so fast our brains cannot keep up!
Type the following code and refer to comments to see what each line does:
void interrupt(void) // ISR
{
/*Work out math for seconds (dividing a number into its 'tens' and 'ones' so each value can be displayed independently)*/
OPTION_REG.T0CS=1; // stop counter
TMR0=100; // reload timer 256-156=100
asm{nop}; // pad out with 'nops'
asm{nop}; // for ten milli-seconds
OPTION_REG.T0CS=0; // start counter
Huns++;
if (Huns > 99) // if one hundred interrupts!
{
Seconds++;
Huns = 0;
}
if(Seconds > 59)
{
Seconds = 0;
}
Tens = Seconds/10;
Units = Seconds - (Tens * 10);
//Code for multiplexing and displaying values
if ( PORTA.F0 == 1 )
{
PORTA = 0B00010; // Tens on Units off
Segment = Units;
}
else if(PORTA.F1 == 1)
{
PORTA = 0B00001;
Segment = Tens;
}
INTCON.T0IF=0; // reset interrupt flag
}
Finally we'll set up the decoding function to translate a numeric value into its seven segment binary equivalent. Type the folling code into MikroC:
void Convert(void) //Seven Segment decoder
{
switch (Segment)
{
case 0 : PORTB = 0B01111110;
break;
case 1 : PORTB = 0B00001100;
break;
case 2 : PORTB = 0B10110110;
break;
case 3 : PORTB = 0B10011110;
break;
case 4 : PORTB = 0B11001100;
break;
case 5 : PORTB = 0B11011010;
break;
case 6 : PORTB = 0B11111010;
break;
case 7 : PORTB = 0B00001110;
break;
case 8 : PORTB = 0B11111110;
break;
case 9 : PORTB = 0B11001110;
}
}
And thats it! All we need to do now is compile it!
The schematic for isis (for simulation), .asm, .ppc and .c files can be downloaded here: http://factm8.com/glen/blogfiles/60Seccounter.rar
Wednesday, 20 June 2007
Acronyms and Abbreviations
2-D two-dimensional
3-D three-dimensional
A/V audio/video
A2DP Advanced Audio Distribution Profile
AAF Advanced Authoring Format
AC-3 Advanced Cluster Computer Consortium
ACCM asynchronous control character map
ACPI Advanced Configuration and Power Interface
ACR advanced communications riser
AD Active Directory
ADC analog-to-digital converter
ADS Automated Deployment Services
AEC acoustic echo cancellation
AGP Accelerated Graphics Port
AIO all-in-one
ALPC adaptive link power control
AMR audio modem riser
AP access point
APC asynchronous procedure call
API application programming interface
APIC Advanced Programmable Interrupt Controller
APO audio processing objects
ARIB Association of Radio Industries and Businesses
ASL ACPI source language
AT Advanced Technology
ATA Advanced Technology Attachment
ATAPI ATA Packet Interface
ATIS Alliance for Telecommunications Industry Solutions
ATM asynchronous transfer mode
ATN absolute track number
ATSC Advanced TV Systems Committee
AV/C audio/video control
AVCTP Audio/Video Control Transport Protocol
AVDTP Audio/Video Distribution Transport Protocol
AVRCP Audio/Video Remote Control Profile
BAR base address register
BCSP BlueCore Serial Protocol
BCV boot connection vector
BDA Broadcast Driver Architecture
BEV bootstrap entry vector
BIOS basic input/output system
blt block transfer
BMC Baseboard Management Controller
BOT Bulk Only Transport
BPP basic printing profile
bpp bits per pixel
CAB filename extension for cabinet files
CBLID cable ID
CBR constant bit rate
CCID chip/smart card interface device
CD compact disc
CDC communication device class
CDMA code division multiple access
CD-R compact disk - recordable
CD-ROM compact disk - read only memory
CD-RW compact disk - readable/writable
CE consumer electronics
CEA Consumer Electronics Association
CEDDK Windows CE Driver Development Kit
CETK Windows CE .Test Kit
CFA CompactFlash Association
CGMS-A copy generation management system analog
CHS cylinder head sector
CI component instrumentation
CIE International Commission on Illumination
CIP common isochronous packet
CLI command-line interface
CLSID class identifier
CMM color management module
CMOS complementary metal-oxide semiconductor
CMP connection management protocol
CMYK Cyan Yellow Magenta Black
CNIC converged network interface card
CNR communications and networking riser
codec compressor/decompressor
COPP Certified Output Protection Protocol
CRC cyclic redundancy check
CRT cathode ray tube
CS cable select
CSR command and status register
CTL filename extension for Tracedev control file
CVCC Consumer Video Channel Characterization
DAC (1) digital/analog converter; (2) dual address cycle
DAVIC Digital Audio-Visual Council
dB decibel
DCE (1) desktop composition engine (Vista); (2) Distributed Computing Environment
DCF data call-first
DCT (1) discrete cosine transform; (2) display compatibility test
DDC (1) Driver Development Conference; (2) Driver Distribution Center
DDC/CI Display Data Channel / Command Interface
DDCD double-density compact disk
DDI device driver interface
DDK Driver Development Kit
DDNS Dynamic Domain Name Service
DDR double data rate
DEP data execution protection
DFW Designed for Windows
DHCP Dynamic Host Configuration Protocol
DHWG Digital Home Working Group
DIFx Driver Install Framework
DIS Draft International Standard
DLP Texas Instruments Digital Light Processing
DLS Distributed Link Services
DMA direct memory access
DNS Domain Name Service
DO device object
DOCSIS Data-over-Cable Service Interface Specification
DP Dynamic Partitioning
DPC (1) deferred procedure call; (2) display position counter
DPI dots per inch
DR dynamic range
DRM Digital Rights Management
DSCP differential services control point
DSL digital subscriber line
DSM (1) data source manager; (2) device-specific module
DSP digital signal processing
DSS digital satellite system
DSTN double-layer supertwisted nematic
DTE data terminal equipment
DTV digital television
DUN dial-up networking
DV digital video
DVB Digital Video Broadcasting
DVD digital video disc
DVI Digital Video Interface
DVR digital video recorder
DWG Datacasting Working Group
EAZ EndgerateAushlZiffer
EC embedded controller
ECC error correction code
ECMA European Computer Manufacturers Association
ECP extended capabilities port
ECR engineering change request
E-DDC extended display data channel
EDID extended display identification data
E-EDID enhanced extended display identification data
EFI Extensible Firmware Interface
EFPS effective frames per second
EHCI enhanced host controller interface
EIA Electronic Industries Association
EMF enhanced metafile
ESD electrostatic discharge
ETR ETSI Technical Report
ETSI European Telecommunications Standards Institute
ETW Event Tracing for Windows
EULA End User License Agreement
ExCA Exchangeable Card Architecture
EXIF Exchangeable Image File
FACS firmware ACPI control structure
FADT fixed ACPI description table
FC (1) Fibre Channel; (2) flow control
FCIV File Checksum Integrity Verifier
FCP function control protocol
FDC floppy disk controller
FDO functional device object
FIR fast infrared
FIS frame information structure
FS full scale
FSAA full screen anti-aliasing
FSCTL file system control
FSIV fast switch input signal inversion
FSOV fast switch output voltage
GART graphics address remapping table
GAVDP Generic Audio/Video Distribution Profile
GB gigabyte
GCI Get Content Information
GDI Graphics Device Interface
GPE general purpose event
GPF general protection fault (stop error condition)
GPRS General Packet Radio Services
GPU graphics processing unit
GQoS generic quality of service
GRE GDI rendering engine
GTF generalized timing formula
GTS GPU time stamp
GUI graphical user interface
GUID globally unique identifier
HAL hardware abstraction layer
HBA host bus adapter
HCI Host Controller Interface
HCL hardware compatibility list
HCRP hardcopy cable replacement profile
HCT hardware compatibility test
HD high-definition
HDA high-definition audio
HDC hard disk controller
HDCP high-definition digital content protection
HDD hard disk drive
HDLC high-level data link control
HDMI High-Definition Multimedia Interface
HDTV high-definition television
HID human interface device
HPC high performance computing
HPD hot plug detect
HPET high precision event timer
Hz hertz
I/O input/output
I2C Inter-IC
I2O intelligent I/O
IA-PC Intel Architecture personal computer
ICC International Color Consortium
ICCC International Council for Computer Communication
ICM Image Color Management
ICMP Internet Control Message Protocol
ID identifier
IDCT inverse discrete-cosine transform
IDE Integrated Device Electronics
IEC International Electromechanical Commission
IEEE Institute of Electrical and Electronics Engineers
IETF Internet Engineering Task Force
IFS installable file system
IFSC information field size integrated circuit card
IFSD information field size device
IGD Internet gateway device
IHV independent hardware vendor
IID interface identifier
IM intermediate (for example, IM NDIS driver)
INCITS InterNational Committee for Information Technology Standards
INF filename extension for information file
IO input/output
IOAPIC I/O Advanced Programmable Interrupt Controller
IOCTL I/O control
IP Internet Protocol
IPB IP destination address
IPMI Intelligent Platform Management Interface
IPsec Internet Protocol Security
IPTV Internet Protocol television
IPv6 Internet Protocol version 6
IR infrared
IrDA Infrared Data Association
IrLAP Infrared Link Access Protocol
IrLMP Infrared Link Management Protocol
IRP I/O request packet
IrPHY IrDA Physical Layer Link Specification
IrPnP IrDA Plug and Play Extensions to IrLMP
IRQ interrupt request
IRQL interrupt request level
IrTinyTP Infrared Tiny Transport Protocol
ISA Industry Standard Architecture
iSCSI Internet Small Computer System Interface
ISDN Integrated Services Digital Network
ISO International Organization for Standardization
ISP Internet service provider
ISR interrupt service routine
IST interrupt service thread
ISV independent software vendor
ITU International Telecommunications Union
ITU-T International Telecommunication Union - Telecommunication Standardization
JEITA Japan Electronics and Information Technology Industries Association
JPEG Joint Photographic Experts Group
KD kernel debugger
kHz kilohertz
KHR Kernel Hang Reporting
Kbps kilobits per second
KS kernel stream
KVM keyboard, video, and mouse
La/Lo latitude and longitude
LAN local area network
LAPI Longhorn API
LAPM Link Access Protocol, Modem
LBA logical block addressing
LBN logical block number
LBN logical block number
LCD liquid crystal display
LCP Link Control Protocol
WDDM Windows Display Driver Model
LEAP Lightweight Extensible Authentication Protocol
LFE low frequency effects
LPC low pin count
LPD line printer daemon
LPR line printer remote
LSB least significant bit
LSO large send offload
LUN logical unit number
LUT look up table
LVDS low-voltage differential signaling
MADT multiple APIC description table
MB megabyte
Mb megabit
Mbps megabits per second
MCCS Monitor Control Command Set
MCFG An ACPI table-based mechanism that is used to communicate the memory mapped configuration space base addresses corresponding to the PCI Segment Groups and/or base address ranges within a PCI Segment Group available to the system at boot.
MCPP Microsoft Communications Protocol Program
MCX Media Center Extender
MDF Microsoft Meta-Data Framework
MDK Modem Development Kit
MDL memory descriptor list
MF multifunction
MFP multifunction printer
MHN Multimedia Home Network
MHz megahertz
MIB Management Information Base
MIPS millions of instructions per second
MMC (1) Multimedia Commands, (2) MultiMediaCard, (3) Microsoft Management Console
MMIO memory-mapped I/O
MMU memory-management unit
MO magneto-optic
MOF managed object format
MoM modem-on-motherboard
MPEG Motion Picture Expert Group
MPIO Microsoft Multipath I/O
MR modem riser
MRL manual retention latch
ms millisecond
MSB most significant bit
MSC most significant character
MSF minute, second, frame [format]
MSI (1) message signaled interrupt; (2) Microsoft Software Installer
MSR Microsoft reserved partition
MTBF mean time between failures
MTP Media Transfer Protocol
MTS multichannel television sound
MTU maximum transmission unit
mVrm milliVolt root mean square
NABTS North American Basic Teletext Specification
NAK negative acknowledgment
NAS network-attached storage
NAVI-D New Analog Video Interface - Digital
NAVI-P New Analog Video Interface - Portable
NAVI-V New Analog Video Interface – VGA
NDIS Network Driver Interface Specification
NIC network interface adapter
NRE nonrecurring engineering expense
NS noise suppression
NTFS NT File System
NTSC National Television System Committee
NUMA nonuniform memory access
NX Execution Protection
OAL OEM adaptation layer
OCA Online Crash Analysis
OEM original equipment manufacturer
OHCI Open Host Controller Interface
OID object identifier
OOBE out-of-box experience
OPC optimum power control
OS operating system
OSI Open System Interconnection
OSPM operating system-directed power management
OSTA Optical Storage Technology Association
PAE Physical Addressing Extension
PAL phase alternation line
PATA Parallel ATA
PC personal computer
PCI Peripheral Component Interconnect
PCIe PCI Express
PCIIO PCI I/O
PCL Printer Command Language
PCM pulse code modulation
PCMCIA Personal Computer Memory Card International Association
PD phase-dual
PDB parallel data base
PDDRM portable device DRM
PDL Page Description Language
PDO physical device object
PES packetized elementary stream
PGC Program Chain
PIC programmable interrupt controller
PID product identifier
PIMA Photographic and Imaging Manufacturers Association
PIN personal identification number
PIO programmed input/output
PM (1) power management; (2) partition management
PME power management event
PMP protected media path
PNP, PnP Plug and Play
POST Power On Self Test
POTS plain old telephone service
PPP Point-to-Point Protocol
PRCB processor control block
PS2 Personal System 2
PSH push
PSHED Platform Specific Hardware Error Driver
PSK product service key
PSS Product Support Services (Microsoft)
PSTN public switched telephone network
PT/PC PrintTicket/PrintCapabilities
PTE page table eprintentry
PTP Picture Transfer Protocol
PTS presentation time stamp
PU partition units
PVP protected video path
PVR personal video recorder
PXE Preboot Execution Environment
QFE quick-fix engineering
QIC quarter-inch cartridge
qWave Quality Windows Audio Video Experience
RAID redundant array of independent disks
RAM random access memory
RBC reduced block command
RDMA remote direct memory access
RDP Remote Desktop Protocol
REV revision ID
RF radio frequency
RFC request for comment
RGB Red Green Blue
RIS remote installation server
RNDIS Remote Network Driver Interface Specification
ROM read-only memory
RSDP root system description pointer
RSS Receive Side Scaling
RST segment Reset segment
RT real time
RTC real-time clock
RTCP RTP Control Protocol
RTP Real-Time Transport Protocol
RW readable/writable
s second
S/PDIF Sony/Philips Digital Interface Format
S/T pseudo-ternary
SAL system abstraction layer
SAN storage area network
SAP secondary audio programming
SAPIC streamlined advanced programmable interrupt controller
SAS serial attached storage
SBC SCSI block command
SBP serial bus protocol
scRGB IEC 61966-2-2 color space
SCSI small computer system interface
SD secure digital
SDK Software Developers Kit
SDP (1) service discovery protocol; (2) Sockets Direct Protocol
SDTV standard-definition television
SDV static driver verifier
SECAM Sequential Color with Memory
SFF small form factor
SID subsystem identifier
SIG special interest group
SIOM server I/O module
SIR serial infrared
SLIC SDV rules language
SMART self-monitoring, analysis, and reporting technology
SMBIOS system management BIOS
SMPTE Society of Motion Picture and Television Engineers
SNMP Simple Network Management Protocol
SOAP Simple Object Access Protocol
SoC system on a chip
SP service pack
SPC SCSI primary commands
SPI SCSI parallel interface
SPID service profile identifier
SPP serial port profile
SRB SCSI request block
SRC sample rate converter
sRGB standard red-green-blue
SRTM Static Root of Trust for Measurement
SSC SCSI stream commands
SSID service set identifier
SSL Secure Sockets Layer
STI still imaging architecture
SVID subsystem vendor ID
TC traffic control
TCG Trusted Computer Group
TCP Transmission Control Protocol
TCP/IP Transmission Control Protocol/Internet Protocol
TDI transport driver interface
TIA Telecommunications Industries Association
TMKBC Trusted Mobil Keyboard Controller Architecture
TMM Transient MultiMon
TOE TCP offload engine
TPL template file extension
TPM Trusted Platform Module
TVAF TV Anytime Forum
UAA Universal Audio Architecture
UAGP Universal Accelerated Graphics Port
UART universal asynchronous receiver/transmitter
UDF universal disk format
UDP/IP User Datagram Protocol/Internet Protocol
UFD USB Flash Drive
UHCI Universal Host Controller Interface
UI user interface
UMA universal memory architecture
uMDF Microsoft Windows User Mode Driver Framework
UNC uniform naming convention
UPnP universal Plug and Play
URI uniform resource identifier
USB Universal Serial Bus
USB-IF USB Implementers Forum
UVC USB video class
UWB ultrawide band
uWDF user-mode Windows Driver Framework
VA video acceleration
VBE VESA BIOS extension
VBI vertical blanking interval
VBR variable bit rate
VC virtual channel
VCP BVirtual Control Program Interface
VDC visible display coordinates
VDDM Vista Display Driver Model (was WDDM)
VDP visible display position
VDS virtual disk service
VEN vendor ID
VESA Video Electronics Standards Association
VFIR optional very fast infrared
VGA video graphics array
VID vendor identifier
VLAN virtual LAN
VLD very large dimension
VMR video mixing renderer
VoIP voice over IP
VPN virtual private network
Vrms volt root mean square
VSS Volume Shadow Copy Service
WAN wide area network
WAP Wireless Application Protocol
WaveRT Wave Real Time
WC write-combined
WDF Windows Driver Foundation
WDK Windows Driver Kit
WDM Windows Driver Model
WDRT WDT resource table
WDT watchdog timer
WEP Wired Equivalent Privacy
WER Windows Error Reporting
WFP Windows Filtering Platform
WHDC Windows Hardware and Driver Central
WHEA Windows Hardware Error Architecture
WHIIG Windows Hardware Instrumentation Implementation Guidelines
WHQL Windows Hardware Quality Labs
WIA Windows Image Acquisition
WinPE Windows Preinstallation Environment
Winqual Windows Quality Online Services
WLAN wireless LAN
WLP Windows Logo Program
WMA Pro Windows Media Audio Professional
WMDM Windows Media Device Manager
WMDRM Windows Media Digital Rights Management
WMI Windows Management Instrumentation
WMV Windows Media Video
WMX Web Services for Management Extension
WOL wake-on LAN
WPA Wi-Fi protected access
WPAN wireless personal area network
WPD Windows portable devices
WPP Windows software trace preprocessor
WSD (1) Web Services for Devices; (2) Winsock Direct
WSDAPI Windows Services for Devices API
WWAN wireless wide area network
WYSIWYG what you see is what you get
WZC Wireless Zero Configuration
XD Execute Disable
XML Extensible Markup Language
XDDM, XPDDM Windows XP Display Driver Model
XSDT extended system description table
YUV Y (luminance), U (Cb), and V (Cr)
µS microsecond
AC alternating current
ACCM asynchronous control character map
ACK acknowledgment
ACL access control list
ACP Analog Content Protection
ACPI Advanced Configuration and Power Interface
ADF automatic document feeder
AeroAT Aero Assessment Tool
AHCI Advanced Host Controller Interface
AIO all-in-one
AMD Advanced Micro Devices
AMR Audio Modem Riser
MR Modem Riser
APS Advanced Photo System
ARIB Association of Radio Industries and Businesses
ARP Address Resolution Protocol
ASCII American Standard Code for Information Interchange
AT Advanced Technology
ATA Advanced Technology Attachment
ATAPI ATA Packet Interface
AVR audio/video receiver
BCSP BlueCore Serial Protocol
BDA Broadcast Driver Architecture
BE best effort
BIOS basic input/output system
BMC Baseboard Management Controller
bps bits per second
CBLID cable ID
CD compact disc
CDB command descriptor block
CEA Consumer Electronics Association
CFA Compact Flash Association
CGMS-A copy generation management system analog
CHAP Challenge Handshake Authentication Protocol
CHS cylinder head sector
CLR Common Language Runtime
CMOS complementary metal-oxide semiconductor
CMYK cyan yellow magenta black
CNR communications and networking riser
COM Component Object Model
COPP Certified Output Protection Protocol
CRASH Comparative Reliability Analyzer for Software and Hardware
CRC cyclic redundancy check
CRT cathode ray tube
CS cable select
CSR configuration status register
DAC digital/analog converter; dual address cycle
dB decibel
DCF data call-first
DCR design change request
DDC/CI Display Data Channel / Command Interface
DDI device driver interface
DHCP Dynamic Host Configuration Protocol
DIFx Driver Install Framework
DIFxAPI Driver Install Framework API
DIFxAPP Driver Install Framework for Applications
DLL dynamic-link library
DLNA Digital Living Network Alliance
DLP Texas Instruments digital light processing
DMA direct memory access
DNS Domain Name Service
DOCSIS Data Over Cable Service Interface Specification
DPC deferred procedure call
DPInst Driver Package Installer
DRM Digital Rights Management
DRS Driver Reliability Signature
DSCP differential services control point
DSL digital subscriber line
DSM data source manager; device-specific module
DSS digital satellite system
DSTN double-layer supertwisted nematic
DTE data terminal equipment
DTV digital television
DVB Digital Video Broadcasting
DVD digital video disc
DVI Digital Video Interface
DWA device wire adapter
DWORD doubleword
DXGI DirectX Graphics Infrastructure
EAP Extensible Authentication Protocol
ECC error correction code
ECMA European Computer Manufacturers Association
ECR engineering change request
EDD enhanced disk drive services
EDID extended display identification data
EDR event data recorder
E-EDID enhanced extended display identification data
EFI Extensible Firmware Interface
EHCI Enhanced Host Controller Interface
EIA Electronic Industries Association
ESCD extended system configuration data
ESD electrostatic discharge
FC Fibre Channel; flow control
FC-FS Fibre Channel Framing and Signaling
FC-HBA Common HBA API
FCP-2 Fibre Channel Protocol for SCSI, Version 2
FDC floppy disk controller
FIR fast infrared
FIS frame information structure
FM frequency modulation
FS full scale
FUA force unit access
GART graphics address remapping table
GB gigabyte
Ghz gigahertz
GPIO general-purpose I/O
GPU graphics processing unit
GTF generalized timing formula
GUI graphical user interface
GUID globally unique identifier
HAL hardware abstraction layer
HBA host bus adapter
HCI Host Controller Interface
HCT hardware compatibility test
HD high definition
HDC hard disk controller
HDD hard disk drive
HDK hardware development kit
HDLC high-level data link control
HDMI High-Definition Multimedia Interface
HID human interface device
HPD hot plug detect
HPET high-precision event timer
HTML Hypertext Markup Language
HWA host wire adapter
I/O input/output
I2C Inter-IC
I2O intelligent I/O
IA-64 Intel 64-bit
IA-PC Intel Architecture personal computer
ICC International Color Consortium
ICM Image Color Management
ICMP Internet Control Message Protocol
ID identifier
IDE Integrated Device Electronics
IE information element
IEC International Electromechanical Commission
IEEE Institute of Electrical and Electronics Engineers
IETF Internet Engineering Task Force
IFSC information field size integrated circuit card
IFSD information field size device
IGD Internet gateway device
IHV independent hardware vendor
IKE Internet key exchange
INCITS InterNational Committee for Information Technology Standards
INF filename extension for information file
INI initialization files
IP Internet Protocol
IPMI Intelligent Platform Management Interface
IPSec Internet Protocol Security
IR infrared
IrDA Infrared Data Association
IrLAP Infrared Link Access Protocol
IrLMP Infrared Link Management Protocol
IRP I/O request packet
IrPHY IrDA Physical Layer Link Specification
IrPnP IrDA Plug and Play Extensions to IrLMP
IRQ interrupt request
IrTinyTP Infrared Tiny Transport Protocol
ISA Industry Standard Architecture
iSCSI Internet Small Computer System Interface
ISDN Integrated Services Digital Network
iSNS Internet Server Name Service
ISO International Organization for Standardization
ISP Internet service provider
ISR interrupt service routine
ISV independent software vendor
ITU International Telecommunications Union
ITU-T International Telecommunication Union - Telecommunication Standardization
JEITA Japan Electronics and Information Technology Industries Association
JPEG Joint Photographic Experts Group
K kilobyte
Kbps kilobits per second
KCS Keyboard Controller Style
Kg kilogram
KMDF kernel-mode driver framework
KS kernel stream
LAN local area network
LAPM Link Access Protocol, Modem
LBA logical block addressing
LCD liquid crystal display
LCP Link Control Protocol
LFE low-frequency effects
LFX local effects
LLTD link layer topology discovery
LPC low pin count
LUN logical unit number
LUT look up table
LVDS low-voltage differential signaling
MAC Media Access Control
Mbps megabits per second
MCCS monitor control command set
MCI Multimedia Control Interface
MF multifunction
MFP multifunction printer
MFT master file table
MHz megahertz
MIB Management Information Base
MIDI Musical Instrument Digital Interface
mm millimeter
MMC multimedia commands
MO magneto-optic
MoM modem-on-motherboard
MPEG Motion Picture Expert Group
MPIO Multipath I/O
MR modem riser
ms millisecond
MSC most significant character
MSI message signaled interrupt
MTP Media Transfer Protocol
MTS multichannel television sound
MTU maximum transmission unit
MXC Media Center Extender
NABTS North American Basic Teletext Specification
NAK negative acknowledgment
NAND Not AND
NAT network address translation
NCQ mative command queuing
NDA non-disclosure agreement
NDIS Network Driver Interface Specification
NIC network interface adapter
NS noise suppression
NTFS NT file system
NTSC National Television System Committee
NVRAM non-volatile random access memory
OCUR OpenCable unidirectional receivers
OEM original equipment manufacturer
OHCI Open Host Controller Interface
OID object identifier
OPK open product key
OPM output protection management
OSTA Optical Storage Technology Association
PAL phase alternation line
PATA parallel ATA
PAWS protection against wrapping sequence
PC personal computer
PCB printed circuit board
PCI Peripheral Component Interconnect
PCIe PCI Express
PCM pulse code modulation
PCMCIA Personal Computer Memory Card International Association
PD phase dual
PDL printer description language; page description language
PES packetized elementary stream
PHY physical layer
PID product identifier
PIMA Photographic and Imaging Manufacturers Association
PIN personal identification number
PIO programmed input/output
PM partition management; power management
PME power management event
PnP Plug and Play
POS point of service
POST power-on self test
POTS plain old telephone service
ppi points per inch
PPP Point-to-Point Protocol
PSH push
PSHED platform-specific hardware error driver
PSK product service key
PSTN public switched telephone network
PTP Picture Transfer Protocol
PU partition unit
PVP protected video path
PVR personal video recorder
PXE preboot execution environment
QAM quadrature amplitude modulation
QoS quality of service
qWAVE quality Windows audio video experience
RAID redundant array of independent disks
RAM random access memory
RBC reduced block command
RCA Radio Corporation of America
RDP Remote Desktop Protocol
REV revision
RF radio frequency
RFC request for comment
RGB red green blue
RNDIS Remote Network Driver Interface Specification
ROM read-only memory
RSS receive side scaling
RST reset
RTC real-time clock
s second
S/PDIF Sony/Philips Digital Interface Format
S/T pseudo-ternary
SAM SCSI architecture mode
SAN storage area network
SAP secondary audio program
SAS secure attention sequence; serial attached storage
SATA serial ATA
SBC SCSI block commands
SBP serial bus protocol
SCSI small computer system interface
SD secure digital
SDIO secure digital I/O
SDK software developers kit
SDP service discovery protocol; Sockets Direct Protocol
SECAM sequential color with memory
SFF small form factor
SID subsystem identifier
SIG special interest group
SIR serial infrared
SKU stock keeping unit
SMART self-monitoring, analysis, and reporting technology
SMBIOS system management BIOS
SMC SDSI media changer
SNMP Simple Network Management Protocol
SNR signal-to-noise
SP service pack
SPC SCSI primary commands
SPI SCSI parallel interface
SPID service profile identifier
SPP serial port profile
SRC sample rate conversion
sRGB standard red-green-blue
SRTM static root of trust for measurement
SSDP Simple Service Discovery Protocol
SSID service set identifier
STA station
STP Spanning Tree Protocol
SVID subsystem vendor ID
TCG Trusted Computer Group
TCP Transmission Control Protocol
TDI transport driver interface
TIA Telecommunications Industries Association
TLV type length value
TMM Transient MultiMon
TOE TCP offload engine
TPL tested products list
TPM trusted platform module
TV television
UAA Universal Audio Architecture
UART universal asynchronous receiver/transmitter
UDF universal disk format
UDMA ultra-direct memory access
UDP User Datagram Protocol
UHCI Universal Host Controller Interface
UI user interface
UMA universal memory architecture
UMDF user-mode driver framework
UPnP universal Plug and Play
USB Universal Serial Bus
UX user experience
VA video acceleration
VBI vertical blanking interval
VBR variable bit rate
VC virtual channel
VCP Virtual Control Program Interface
VCR video cassette recorder
VESA Video Electronics Standards Association
VFIR very fast infrared
VGA video graphics array
VHF very high frequency
VID vendor identifier
VLAN virtual LAN
VMR video mixing renderer
VPD vital product data
Vrms volt root mean square
VSB vestigial side band
WC write-combined
WCN Windows Connect Now
WCS Windows color system
WDDM Windows Display Driver Model
WDF Windows Driver Foundation
WDK Windows Driver Kit
WDM Windows Driver Model
WDRT WDT resource table
WDT watchdog timer
WEP Wired Equivalent Privacy
WFA Wi-Fi Alliance
WGF Windows Graphics Foundation
WHCI wireless host controller interface
WHDC Windows Hardware and Driver Central
WHEA Windows Hardware Error Architecture
WHIIG Windows Hardware Instrumentation Implementation Guidelines
WHQL Windows Hardware Quality Labs
WIA Windows Image Acquisition
Wi-Fi wireless fidelity
Winqual Windows Quality Online Services
WinSAT Windows System Assessment Tool
WLAN wireless LAN
WMA Windows Media Audio
WME wireless multimedia extension
WMI Windows Management Instrumentation
WMM wireless multimedia
WMV Windows Media Video
WOL wake-on LAN
WPA Wi-Fi protected access
WPAN wireless personal area network
WPD Windows portable devices
WRE write cache enable
WS Web Services for Devices
WSD Web Services for Devices
XDDM Windows XP Display Driver Model
XPS XML Paper Specification
XUSB Xbox 360 Universal Serial Bus