Гл3_06 (1031649), страница 7
Текст из файла (страница 7)
3.6). Старшая часть адреса (PCН) передается через портРис. 3.7.Р2 и во внешней фиксации не нуждается.Затем считывается следующая инструкция и так далее. За машинный цикл считываетсядва байта команд. Параллельно идет и выполнение. Если команда однобайтовая, лишниесчитанные коды игнорируются и вводятся снова в очередном машинном цикле.Рябов Владимир Тимофеевич. Кафедра «Электронные технологии в машиностроении»МГТУ им. Н. Э. Баумана, V_Ryabov@mail.ru119BQS1P1 P2S2Машинный циклP1 P2S3S4P1 P2S5P1 P2P1 P2S6P1 P2S1P1 P2S2P1 P2S3P1 P2S4P1 P2S5P1 P2S6P1 P2S1S2P1 P2P1 P2ALEPMEP0 inCPCLP2inCPCLPCHinCPCLPCHinCPCLPCHinCPCLPCHPCHРис.
3.8. Работа с внешней памятью программ без обращения к внешней памяти данныхRAMИз циклограммы видно, что при подключении внешней памяти программ, использовать порты Р0 и Р2 для ввода-вывода как порты общего назначения не удастся,поскольку они практически полностью заняты обслуживанием шины.Внешняя память данных адресуется 16-и разрядным адресом и может составлять до 64кБ (рис. 3.4). В этой зоне доступна только косвенная адресация. В зоне до 255 байт она возможначерез регистры R0 и R1, по всей памяти применимы команды:MOVX A,@DPTR ;записать в аккумулятор содержимое ячейки, адрес которой;содержится в регистре указателе данных DPTRMOVX @DPTR,A ;записать в ячейку, адрес которой содержится в регистре;указателе данных DPTR, содержимое аккумулятора.Обращение к внешней памяти программ осуществляетAOD0AOD0ся через внешнюю шину, формируемую портами Р0 и Р2 (см.A1D1A1D1A2D2рис.
3.6). Аппаратное подключение схем ОЗУ внешней памятиA2D2A3D3A3D3A4программ показано на рис. 3.9. Видно, что никакой дополниD4D4A4A5D5D5A5тельной логики для подключения типовой схемы статическогоA6D6D6A6A7D7ОЗУ не требуется. Потребуется лишь дешифратор адреса, еслиD7A7A8A8подключаемых схем в массиве внешней памяти данных болееA9A9A10одной.A10A11A12 A11На рис. 3.10. показана циклограмма работы с внешнейA12RDпамятьюданных при чтении инструкций из резидентной памяOEWRти программ. Команда MOVX длится два машинных цикла,W/Rпричем, во втором цикле формируется сигнал на линии чтенияCSк ДШАили записи и периодичность сигналов ALE и PME нарушается.Данные, выставляются из МК на шину данных при записи впоследней трети сигнала WR.
При реализации операции чтения из внешней памяти, схема ОЗУ обязана выставить информацию на шину также к последней трети сигнала RD,поскольку именно в это время данные фиксируются микроконтроллером через порт Р0.BQS1P1 P2S2Машинный циклP1 P2S3P1 P2S4P1 P2S5P1 P2S6P1 P2S1P1 P2S2P1 P2S3P1 P2S4P1 P2S5P1 P2S6P1 P2S1P1 P2S2P1 P2ALEPMEWRRDP0Состояние защелокP2Состояние защелокA0-7Состояние защелокA8-15DoutDinСостояние защелокСостояние защелокКоманда записи - чтенияРис. 3.10. Работа с внутренней памятью программ с обращением к внешней памяти данныхРябов Владимир Тимофеевич. Кафедра «Электронные технологии в машиностроении»МГТУ им.
Н. Э. Баумана, V_Ryabov@mail.ru120На рис. 3.11. показана циклограмма обращения к внешней памяти данных причтении инструкций из внешней памяти программ. Как видно из рисунка, и в этом случае нарушается периодичность сигналов ALE и PME порты Р0 и Р2 использовать в качестве портов ввода-вывода общего назначения нельзя.BQS1S2P1 P2Машинный циклS3P1 P2S4P1 P2P1 P2S5P1 P2S6P1 P2S1P1 P2S2P1 P2S3P1 P2S4P1 P2S5P1 P2S6P1 P2S1P1 P2S2P1 P2ALEPMEWRRDP0inCPCLinCP2DoutDinA0-7PCHA8-15PCLinCPCHPCLPCHРис.
3.11. Работа с внешней памятью программ с обращением к внешней памяти данныхWRк ДША1РазрешениеDI0DI1DI2DI3DI4DI5DI6DI7STBRGDI0DI1DI2DI3DI4DI5DI6DI7OEК объектамконтроляРис. 3.12. Регистр для выдачисигналов дискретного управленияRDк ДША 1in BF out11223344OE11223344OED0D1D2D3D4D5D6D7Рис.
3.13. Буфер для приемасигналов дискретного контроляA012A15 VA14A13A12RD1WRMSНа рис. 3.12 показано подключение к внешнейшине регистра, служащего для выдачи сигналов дискретного управления. Этот регистр будет иметь некоторый адрес или зону адресов в адресном пространстве внешних данных. Для активации регистра необходим дешифратор адреса, выделяющий его при проведении операций чтения-записи во внешнюю памятьMOVX.
Сигнал разрешения, подаваемый на выводОЕ` запрещает выдачу сигналов с регистра сразу после включения микроконтроллера. После включенияпитания содержимое регистра неопределенно. Еслиподключить его вывод ОЕ` к порту общего назначения Р1, то все биты этого порта при сбросе МК будут навысоком уровне и содержимое регистра на объект выставлено не будет. Выводы регистра будут в Zсостоянии. После завершения программы установки начального состояния объекта управления, соответствующий бит порта Р1 можно обнулить и выдать содержимоерегистра на объект управления. По циклограмме записиво внешнюю память убедитесь в правильности функционирования предложенного динамического регистра.Для проведения сигналов дискретного контроля,помимо свободных портов ввода-вывода МК, можно использовать подключенные к внешней шине буферы(рис.
3.13). При проведении операции чтения из внешней памяти данных буфер подключит датчики объектауправления к шине и содержимое сразу восьми линийбудет считано в МК.Здесь также необходим дешифратор, активизирующий выводы ОЕ` буфера.Устройство такого дешифратора приведено нарис. 3.14. За основу взят уже знакомый нам дешифратор ИД7 3х8. Дешифратор реализует неполную дешифрацию, выделяя каждому регистру или буферу не один,К объектамуправленияD0D1D2D3D4D5D6D7012345678XXXh9XXXhAXXXhBXXXhCXXXhDXXXhEXXXhFXXXhК буферами регистрамРис. 3.14.
Простейшийдешифратор адресаРябов Владимир Тимофеевич. Кафедра «Электронные технологии в машиностроении»МГТУ им. Н. Э. Баумана, V_Ryabov@mail.ru121а целую группу адресов. Это конечно не экономно с точки зрения расходования адресного пространства, но вполне приемлемо для локальных контроллеров. Здесь мы под 8регистров или буферов использовали старшие 32 кБ адресов внешней памяти данных иможем проводить до 64 ДУ или ДК, что для локального контроллера более чем достаточно, как, скорее всего будет и достаточно оставшихся младших 32 кБ адресов.
Предложенный дешифратор уже стробируется сигналами чтения и записи, поэтому ячейкиИЛИ на рис. 3.13 и 3.12 можно (и лучше) исключить и сигнал с дешифратора подаватьнепосредственно на входы синхронизации регистров или разрешения выдачи буферов.Так задержка сигнала будет короче. Умейте оценивать эти задержки. Здесь нужно проверить, когда сработает дешифратор и подаст сигнал на буфер или регистр.
В параметрах каждой микросхемы бывает приведено время задержки сигнала tзад. Суммарноевремя задержки будет складываться из задержки ячейки ИЛИ дешифратора (рис. 3.14),задержки самого дешифратора 1533ИД7 и задержки открытия буфера и составит всумме около 40мкс. Это составит не более одного такта при частоте 12 МГц и с хорошим запасом допустимо относительно появления данных при записи или чтении (см.рис.
3.10, 3.11) как при работе с резидентной или внешней памяти программ.В. Таймеры-счетчики МКМК содержит два шестнадцати разрядных таймера-счетчика: нулевой Т/С0 и первый Т/С1. Они предназначены для счета времени (машинных циклов) либо внешних импульсов через выводы Т0 и Т1 микроконтроллера и способны работать в различных режимах параллельно с МК, не отвлекая его от выполнения предписанных инструкций.В пространстве RSF с таймерами счетчиками связано шесть регистров специальныхфункций:- TMOD – регистр режимов работы таймеров-счетчиков (MODe);- TCON - регистр управления работой таймеров-счетчиков (CONtrol);- TL0 – младший байт нулевого таймера-счетчика;- TH0 – старший байт нулевого таймера-счетчика;- TL1 – младший байт первого таймера-счетчика;- TH1 – старший байт первого таймера-счетчика.В соответствующих регистрах TL и TH и производится счет.
Они инкрементируются и реализуют предписанные таймеру-счетчику режимы работы. Доступны для чтения изаписи из программы пользователя.Назначение отдельных битов регистров TMOD и TCON приведено в табл. 3.10.Таблица 3.10.Бит №76543210TMODGate1C/T1`M1.1M0.1Gate0C/T0`M1.0M0.0TCONTF1TR1TF0TR0IE1IT1IE0IT0Регистр TMOD функционально разделяется на две одинаковые тетрады, относящиеся к первому и нулевому таймеру счетчику, поэтому опишем назначение толькомладших четырех бита.Бит Gate0 – предназначен для управления таймером-счетчиком от выводапрерываний INT0 – для нулевого таймера-счетчика, INT1 – для первоготаймера-счетчика) и позволяет запускать и останавливать Т/С.Бит C/T0` - назначает счет или машинных циклов (1 машинный цикл – двенадцатьтактов осциллятора) или внешних импульсов с вывода Т0 (Т1 для С/Т1).При установке в единицу считает циклы, в нуль – внешние импульсы.Биты M0.0, М1.0 – устанавливают один из четырех режимов работы(подробнее см.
далее).Старшие четыре бита аналогичны по функциям, но относятся к первому таймерусчетчику.Рябов Владимир Тимофеевич. Кафедра «Электронные технологии в машиностроении»МГТУ им. Н. Э. Баумана, V_Ryabov@mail.ru122В таблице 3.11. обобщено краткое описание битов регистра TMOD.Таблица 3.11Биты ОбознаНазначение битовчение0-1М0 – М1 Определяет один из 4-х режимов4-5работы, отдельно для Т/С 1 и Т/С 0М1М0Режим0000111021132,6C/T0,Определяют работу в качестве:C/T1С/Т0, С/Т1 = 0 - таймераС/Т0, С/Т1 = 1 - счетчика3, 7GATE0,Разрешает управлять таймером от вывода МКGATE1(INT0 - для Т/С0, INT1- для Т/С 1).GATE = 0- управление запрещеноGATE = 1- управление разрешеноПримечаниеВсе биты устанавливаются программно:- биты 0-3 определяют режим работы Т/С0.- биты 4-7 определяют режим работы Т/С1 .Регистр TCON – управление Т/С.Биты TF1, TF0 – 7-ой и 5-ый биты - флаги переполнения первого и нулевоготаймера счетчика.
Устанавливаются в единицу аппаратно припереполнении. Могут вызывать прерывания, доступны для чтения.Биты TR1, TR0 - 6-ой и 4-ый биты – разрешают управление счетом от вывода INT1и INT0 для первого и нулевого таймера-счетчика соответственно.Остальные четыре бита регистра TCON управляют внешними прерываниями и будут подробно рассмотрены в соответствующем разделе.В таблице 3.12. обобщено краткое описание битов регистра TCON.Таблица 3.12Биты ОбознаНазначение битовчение6TR1Биты включения - выключения4TR0Т/С, отдельно для Т/С 0 и Т/С 1.TR=0 - выключен,TR=1 - включен.7ТF1Флаги переполнения Т/С.5ТF020IT1IT031IE1IE0Биты, определяющие вид прерывания по входам INT0, INT1:IТ=0 - прерывание по уровню(низкому)IТ=1 - прерывание по спаду(переход из "1" в "0") .Флаги запроса внешних прерываний по входам INT0, INT1ПримечаниеБиты устанавливаются и сбрасываются программно.