Eric,
I commend you for stating up front that you are a student. So if I’m
understanding your Senior Project, you are trying reinvent Windows Media
Center? OK, sounds like it could be fun. Do I understand correctly that
your video input is on the PCI card, and that does the A-D conversion of
captured frames, and then the D-A conversion when it’s sent back to the
display? Are you using an existing TV board, or did your team design one?
Do you understand the basics of DMA (Direct Memory Access)? The host
application doesn’t “push frames directly to the PCI card’s memory”. The
PCI device reads from and writes to host memory without any intervention
from the host processor, once the DMA is setup properly. You would setup
the transfer on the PCI device and start it, then go on with whatever
other processing you need to do until the device interrupts. When the
interrupt happens, you start the next DMA transaction or idle the device.
In your particular case, one DMA transaction describes some fractional
part of a frame, where that fraction can be anywhere from 1/N to N/1
frames, depending on the frame size and your hardware’s DMA limits.
I don’t have the OSR PCI learning kit, but I do have the OSR FX2 USB kit,
and it’s a good kit, so I expect that you will be pleased with it. While
you are still trying to make up your mind about it, if you haven’t
already, download the KMDF 1.1 from Microsoft, it has the latest
production DDK (Windows Server 2003 SP1, AKA 3790.1830) included, so you
are out $0 for it.
Look at the WDF samples, especially follow the step-wise refinement in the
osrusbfx2 sample. It won’t teach you about PCI DMA directly, but it will
give you a better understanding of how to assemble whatever driver you
decide you need?
Phil
Philip D. Barila
Seagate Technology LLC
(720) 684-1842
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Israph?l ?aish?
Sent: Friday, May 19, 2006 12:04 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] Senior Project: PCI Digital Video Recorder
G’day to all y’all,
My name is Eric Bowden, and I’m basically in charge of writing the PCI
Interface for my team’s Computer Engineering senior project. The goal is
to design and fabricate a PCI digital video recorder (DVR) (think TiVo)
where the card is in charge of digital/analog encoding/decoding and frame
buffering, and the host is in charge of storing the data and performing
time shifting operations (like pause, rewind, etc.).
I have no experience with PCI, but am really excited to learn about it.
To this end, I was wondering if osronline’s 9054 DMA Learning kit would be
a good investment. If my understanding of DMA (in a PCI context) is
correct, this would be useful in learning how a host application may push
frames of data (frames) directly to the PCI card’s memory, where they may
be buffered and then analog-ized for TV-viewing. Yes, it’s kinda general,
but as I become more familiar with PCI’s capabilities, I can hone the
design into something concrete.
So, back to the question, would the DMA learning kit be a worthwhile
purchase, or is the current PCI learning kit (Sealevel Digital I/O)
sufficient. Perhaps someone knows of other good resources … ? I could
purchase the Rapid Development Kit from PLX for their 9054 PCI I/O
Accelerator, but starving-student considerations make this highly unlikey.
I look forward to plumbing the depths of collective knowledge in this
forum as I get rolling! 
Thanks,
Eric Bowden
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer