작성일: 2005.03.04
공학석사졸업논문
(FLASH / MMC / SMC / IDE interface or MPEG stream output control)
JongSeok Park, Electronics. VLSI Lab, Pusan Nat. Univ. / jspark@voiso.com
서 론
반도체 및 초고속 인터넷 통신 기술의 급격한 발전으로 이제는 사회, 문화 전반에 디지털 오디오 데이터가 많이 확산되어 있다. 아날로그 테이프 시대에 CD(compact disk)가 처음 나왔을 때 이상한 물건으로 취급될 때도 있었던 것처럼 아직 MP3나 WMA, AAC등 새로운 압축된 디지털 오디오 포맷(이하 디지털 오디오 데이터)에 대한 친밀감이 덜한 것은 사실이다. 아직은 주변에서 MP3 Player같은 Portable Digital audio player를 사용하는 사람은 적다. 그러나 그 사용 추세는 점점 늘어가며 몇 년 후엔 디지털 오디오 데이터에 대한 친숙함은 점점 더해가서 음악을 듣기 위해 단순히 카세트나 CD player를 사용하는 것처럼 간편하게 MP3 같은 디지털 오디오 데이터를 Internet으로 간편하게 download해서 휴대하기 편한 저장장치에 저장해서 빠르게 저장하여 디지털 오디오를 들을 것이다. 디지털 오디오 데이터는 그 데이터의 보관이나 데이터 전송이 용이하기 때문에 그의 사용은 점점 늘어 갈 것이다. 물론 이러한 장점들이 때론 음악에 있어서 저작권 위반이라는 다른 단점으로 나타나기도 하지만 그 수요는 늘어갈 것은 불을 보듯 뻔하다.
이러한 디지털 오디오 데이터의 저장은 여러 저장매체에서 이루어진다. 비디오 데이터보다는 데이터 양이 적은 관계로 portable type의 조그만 메모리카드가 주로 많이 사용되어 진다. 현재 시중에서 사용되고 있는 Smart-Media Card나 Multi-Media Card가 대표적이며, Memory stick 및 NAND형 반도체 FLASH memory등도 많이 사용된다. 디지털 오디오 데이터의 대용량 저장이 필요한곳에는 하드디스크나 CDROM type의 저장매체도 사용된다. 어떤 압축된 디지털 오디오라 할지라도 저장할 매체가 필요하므로 이러한 저장매체와의 인터페이스를 담당할 전용 마이크로컨트롤러가 필요하다. 물론 이러한 마이크로컨트롤러는 embedded형태로 압축된 디지털 오디오데이터를 압축 및 복원하는 SOC type의 반도체에서도 사용될 수도 있다.
이러한 현실에 대응하기 위해 수많은 디지털 오디오 데이터의 포맷이 저장되어 있는 저장매체와의 Interface를 용이하게 하기 위한 인터페이스전용 마이크로컨트롤 설계가 필요하게 되었다. 디지털 오디오데이터의 처리는 비디오에 비해 빠르지 않으며 특히 압축된 MP3나 AAC, WMA등에 대한 처리는 8bit급 마이크로컨트롤러가 적당하다. 설계의 용이성 및 신뢰도를 높이고 개발 기간 단축을 고려하기 위해 기존에 개발된 8bit Micro-controller인 i8032 core를 사용했다. 이 core를 약간의 수정을 통해 기존의 core크기를 줄이고 디지털 오디오 데이터 처리를 위한 기능 블럭을 추가 설계하였다. 이렇게 설계된 저장매체 인터페이스용 마이크로컨트롤러 검증을 위해 여러 가지 저장매체에 대응할 수 있는 MP3 player system을 FPGA로 구현하는 게 본 논문의 목적이다. 실제 꼭 디지털 오디오 데이터 인터페이스만을 위해서가 아닌 저장매체와 그 데이터를 사용하는 system간의 interface에 사용하여도 유용할 것이라 믿는다.
실제 설계에 있어서 i8032 core는 firmware적인 control 역할을 맡았으며 특정 기능 블럭에 해당하는 control register의 setting만으로 편하게 데이터를 주고 받을 수 있는 구조로 설계하였다. 사실 i8032 core를 수정하여 사용하는 것보다 본 논문에서 논하고자 하는 여러 가지 저장매체의 인터페이스를 이해하고 구현하는데 더 많은 시간이 필요했다. 따라서 해당되는 기능 블럭을 편리하게 사용할 수 있는 firmware 코드를 C-source로 작성하여 같이 논문에 기재하여 이 논문을 참고하는 이에게 도움을 주고자 한다. 같이 설계하려고 했던-저장매체에 빠르게 write할수 있는-USB interface에 대한 control 부분은 시간과 관련 지식의 부재로 구현하지 못했다. 대신 시중에 나와있는 USB control chip set을 사용하여 본 논문에서 설계할 controller와 별로도 USB media/read-writer를 제작하였다. 실제 system을 구현하는 부분인 FPGA 구현에 있어서 효율적인 VHDL source coding을 통하여 FPGA compile의 try-and-error를 줄일려고 노력하였다. 이 과정은 Synplify라는 FPGA compiler 툴을 사용하였는데 이 툴을 통해 warning type의 code나 functional에 상관없는 정확한 don't care처리 등을 통해 VHDL source code의 신뢰성을 높이고자 했다. 그 결과 FPGA compile에 대하여 깊은 지식이 없어도 기본적인 setting의 FPGA compile만으로도 비교적 훌륭한 결과 얻을 수 있었다. FPGA는 Altera사의 FLEX10K250이며 Altera에서 제공하는 Synopsys FPGA Express compiler와 Altera사의 MAX+plus II ver9.3을 사용하였다. 25만 게이트급을 사용하여 FPGA sell Area의 부족에서오는 signal의 invalid여부의 검증을 많이 줄일 수 있었다.
논문본문에 II장에서는 일반적으로 사용되는 디지털 오디오 저장매체의 종류와 그 기능을 살펴보며 그 매체에 대한 인터페이스 컨트롤 블록을 설계할 대략적인 구조를 설명하며, III 장에서는 i8032 core의 기본 사양 및 논문에 사용할 디지털 오디오 저장매체 인터페이스용 마이크로 컨트롤러 설계를 위한 수정되고 추가된 부분에 서술이 있을 것이며, IV 장에서는 본 논문에서 구현한 NAND FLASH memory, SMC, MMC, HDD에 대한 interface구현의 기능 블록에 대응된 VHDL code설계, V 장에서는 설계할 컨트롤러의 기능 블럭별 VHDL code simulation을 통한 검증 서술, Ⅵ 장에서는 Altera FPGA을 이용한 VHDL로 설계된 디지털오디오 저장매체 인터페이스용 마이크로 컨트롤러를 MP3-player system에 적용시켜 보며. Ⅶ 장에서는 전체 논문의 결론을 서술하였다.
< 전체 SYSTEM 개요 >
제작한 FPGA MP3 system Picture
졸업논문 및 발표자료
논문제작 참고용 DataSheet
MMC - SanDisk Product datasheet Rev2
MMC - SanDisk Product datasheet Rev3.1
FLASH
- 32Mbyte FLASH
SMC - 64Mbyte SMC
IDE(ATA/ATAPI)
논문에 사용된 Altera FPGA FLEX10K250 의 기본특징
- Device: EPF10K250AGC-599-3
Density - 250,000 typical GATE(MAX system gate 310,000)
LEs(Logic Element) - 12,160
LABs(Logic Array Block) - 1,520
EABs(Embeded Array Block) - 20
Toal RAM bits - 40960bit ( 5K byte )
Max User I/O - 470
- System level feature
- MultiVolt(TM) I/O interface / 5V tolerant input pin
- Love power consumption, less than 0.5mA in stanby mode
- ClockLock(TM), CLockBoost(TM) / Bulit in Low skew clock distribution tree
- enable all pin Tri-state, Open Drain / Programmable output slew rate control
- 599pin PGA, 600pin BGA, 최대 68Mhz의 int RAM을 사용할수 있다.
- Configuration Device
EPC2- PLCC20, reprogrammable FLASH(100번정도), 5.0/3.3V, 1,695,680bit
Support programming with SerialVectorFormat(*.svf)
JamSTAPL Byte-Code File(*.jbc) / MAX+PLUSII software via MasterBlaster,ByteBlaster,BitBlaster
FLEX10K250A는 2개의 EPC2를 필요로함 / JTAG으로 in-system programming가능
설계 검증용 MP3 player System
MMC / SMC / IDE MP3 player - FAT16 support, 1 level Directory support, play mode (repeat, random..), FF/REW, Digital Volume Control
Mp3 player Firmware (for i80c32 compatible core, Keil-C compiler)
for example..
myreg52.h / my_sys.h / system.h / mmc.h / totalmp3.c / totalmp3.hex
Schematics DATA download (Orcard 9.1)
TOP / Power / Flex10K250 / Interface / ROM_latch
PCB DATA download (PowerPCB 3.51)
USB writer / MP3 decoder board
Schematics DATA download (Orcard 9.1)
USB writer / MP3 decoder
PCB DATA download (PowerPCB 3.51)
USB writer / MP3 decoder
PC용 USB전송프로그램
Hyundai USB chipset을 사용한 Unitech의 Rome USB writer program을 사용하면 된다. 공개자료실에서 다운로드받으면 된다.
|
출처: http://home.pusan.ac.kr/~jongseok/