Автор работы: Пользователь скрыл имя, 16 Мая 2013 в 11:53, курсовая работа
За последние годы в микроэлектронике бурное развитие получило направление, связанное с выпуском однокристальных микроконтроллеров, которые предназначены для «интеллектуализации» оборудования различного назначения. Однокристальные микроконтроллеры представляют собой приборы, конструктивно выполненные в виде БИС и включающие в себя все оставшиеся части "голой" микро-ЭВМ: микропроцессор, память программ и память данных, а также программируемые интерфейсные схемы для связи с внешней средой. К настоящему времени более двух третей мирового рынка микропроцессорных средств составляют именно однокристальные микроконтроллеры.
1. Введение. 2
2. Обзор программаторов. 3
2.1. Программатор Громова. 4
2.2. STK200/300. 5
2.3. USBAsp. 6
3. Последовательное программирование AT89S52. 6
3.1. Алгоритм программирования. 6
3.2. Интерфейс программирования SPI. 7
4. Аппаратная реализация программатора. 8
4.1. Микросхема FT245BM. 9
5. Программная реализация. 10
5.3. Использование драйвера D2XX. 10
5.2. Bitbang. 10
Основными элементами являются USB трансивер, контроллер FIFO и входной и выходной буферы FIFO (рис. ). Взаимодействие между этими элементами обеспечивается контроллером последовательного интерфейса (SIE).
Рисунок. Блок-схема микросхемы FT245BM
Данная микросхема является аппаратным преобразователем, а потому программатор на её основе лишен недостатков COM программаторов, использующих bitbang. Для изменения уровней информационных выводов не нужно работать напрямую с линиями, вместо этого достаточно записать байт данных. Кроме того, микросхема сама формирует длительность импульсов, что упрощает работу программной части и ускоряет скорость работы.
Для программирования микроконтроллера написана программа, эмулирующая протокол SPI. Используются D2XX драйвера от FTDI, предназначенные для работы с микросхемой напрямую, а не с виртуальным COM портом. Код программы написан на Delphi, библиотека D2XX для Delphi взята с сайта FTDIchip.com. Обмен данными реализуются с помощью режима bitbang микросхемы FT245B.
Для начала работы с устройствами FTDI необходимо получить их список. Для этого служит функция
procedure TMainFrm.GetDeviceList();
var
Result: FT_Result;
i: integer;
begin
DeviceList.Clear;
Result := GetFTDeviceCount;
if (Result = FT_OK) then
begin
for i := 0 to FT_Device_Count-1 do
begin
GetFTDeviceDescription(i);
DeviceList.Items.Add(
end;
end;
end;
Важно не путать bitbang режим FT245B и bitbang режим COM порта. FT242BM может быть переведена в специальный режим, который переопределяет функции нормальной работы микросхемы. Этот режим преобразует 8 информационных линий в 8-мибитную двунаправленную шину. Первоначально такой режим был разработан для программирования FPGA устройств, однако может применяться и для взаимодействия с EEPROM или микроконтроллерами.
Каждая ножка может быть настроена на ввод либо на вывод. Любые данные, которые записываются в микросхему, автоматически тактируются и появляются на ножках, настроенных на вывод, с указанной частотой.
В FT245B реализован только асинхронный bitbang, потому данные читаются постоянно, опять же с заданной частотой. Более новые микросхемы имеют синхронный bitbang режим, в котором данные читаются только при записи, а в некоторых также присутствует Multi-Protocol Synchronous Serial Engine – режим, в котором уже реализованы наиболее популярные протоколы, такие как SPI, I2C и JTAG.
Для работы в режиме bitbang необходимо использовать две функции: FT_SetBaudRate и .
FT_STATUS FT_SetBaudRate (FT_HANDLE ftHandle, DWORD dwBaudRate)
Параметры функции: ftHandle – указатель на устройство (далее аналогично); dwBaudRate – необходимая скорость передачи.
Данная функция устанавливает скорость передачи и приема байт данных. Для bitbang режима необходимая частота передачи умножается на 16, т.е. для передачи на скорости 9600 Мбит/c необходимо выполнить функцию FT_SetBaudRate с параметром dwBaudRate, равным 153600 (16*9600).
FT_STATUS FT_SetBitmode (FT_HANDLE ftHandle, UCHAR ucMask, UCHAR ucMode)
Параметры функции: ucMask – маска bitbang режима, устанавливает, какие ножки должны быть вводами, а какие – выводами; ucMode – режим работы bitbang.
Данная функция позволяет задать направление работы каждой информационно ножки микросхемы, а также включить или отключить bitbang режим. Параметр ucMask является бит-маской – бит, установленный в ноль соответствует чтению с линии, установленный в единицу – записи на линию. Например, при параметре ucMask равному 00000101b, ножки D7-D3 и D1 будут вводами, а D2 и D0 – выводами.
Значения, которые может принимать параметр ucMode, приведены в таблице 2.
Таблица 2. Значения параметра ucMode
Значение |
Описание |
Устройства |
0x0 |
Отключение bitbang |
Все |
0х1 |
Асинхронный bitbang |
Все |
0x2 |
MPSSE |
FT2232, FT2232H, FT4232H и FT232H |
0х4 |
Синхронный bitbang |
FT232R, FT245R, FT2232, FT2232H, FT4232H и FT232H |
0х8 |
MCU Host Bus Emulation |
FT2232, FT2232H, FT4232H и FT232H |
0х10 |
Fast Opto-Isolated Serial |
FT2232, FT2232H, FT4232H и FT232H |
0х20 |
CBUS bitbang |
FT232R и FT232H |
0х40 |
Режим синхронного FIFO |
FT2232H и FT232H |