Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УЧПУ.Контроллеры электроавтоматики.doc
Скачиваний:
21
Добавлен:
17.09.2019
Размер:
6.86 Mб
Скачать

2.5.Модуль ведущего синхронного последовательного порта (mssp).

Модуль MSSP предназначен для связи по последовательному каналу между различными устройствами: элементы памяти, драйверы ЖКИ, другие микроконтроллеры и т.п.

Модуль может работать в двух режимах:

  1. Шинный интерфейс I2C (Inter-Integrater Circuit).

  2. Последовательный периферийный интерфейс (SPI).

Из этих режимов наибольший интерес для создания разветвленных систем управления представляет первый, т. е. решим шинного интерфейса. Рассмотрим его подробнее. Поскольку микроконтроллеры в данном случае представляют собой некоторую сетевую структуру, базирующуюся на протоколе шинного интерфейса I2C, то каждый из абонентов этой структуры может быть либо ведомым, либо ведущим в зависимости от программы работы модуля MSSP. Модуль MSSP в этом режиме настраивается и управляется с помощью трех регистров специального назначения:

- SSPSTAT (адрес 94h) – регистр статуса,

- SSPCON (адрес 14h) – регистр управления 1,

- SSPCON2 (адрес 91h) – регистр управления 2.

Распределение и обозначения разрядов этих регистров приведены в таблицах 25…27

Таблица 25 ( для регистра SSPSTAT)

Номер разряда

7

6

5

4

3

2

1

0

Обозн. разряда

SMP

CKE

D/-A

P

S

R/-W

UA

BF

где:

7 бит: SMP – фаза выборки бита: «1» - управление длительность фронта выключено, «0» - управление длительность фронта включено.

6 бит: CKE: выбор фронта тактового сигнала: «1» - входные уровни соответствуют спецификации SMBus, «0» - входные уровни соответствуют спецификации I2C.

5 бит: D/-A: бит данные/адрес: «1» - последний принятый или переданный байт является информационным, «0» - последний принятый или переданный байт является адресным.

4 бит: P: бит STOP: «1» - бит STOP был обнаружен последним, «0» - бит STOP не является последним.

3 бит: S: бит START: «1» - бит START был обнаружен последним, «0» - бит START не является последним.

2 бит: R/-W: бит чтения/записи:

для ведомого режима: «1» - чтение, «0» - запись. Бит действует только после совпадения адреса и до приема бит START, STOP, ASK.

для режима ведущего: «1» - выполняется передача данных, «0» - передачи данных нет.

1 бит : UA: флаг обновления адреса устройства: «1» - необходимо обновить адрес устройства в регистре SSPADD, «0» - обновление адреса не требуется.

0 бит : BF: бит статуса буфера SSPBUF: для приема – «1» - прием завершен, буфер полон,

«0» - прием не завершен, буфер пуст; для передачи – «1» - выполняется передача, буфер полон, «0» - передача завершена, буфер пуст.

Таблица 26 ( для регистра SSPCON)

Номер разряда

7

6

5

4

3

2

1

0

Обозн. разряда

WCOL

SSPOV

SSPEN

CRP

SSPM3

SSPM2

SSPM1

SSPM0

где:

7 бит : WCOL: Бит конфликта записи: для ведущего режима: «1» - запись в SSPBUF была выполнена при несоблюдении условий шины I2C, «0» - конфликта не было; для ведомого режима: «1» - была предпринята попытка записи в SSPBUF во время передачи предыдущего байта, «0» - конфликта не было.

6 бит: SSPOV: бит переполнения приемника: «1» - принят новый байт в то время как SSPBUF содержит предыдущие данные, «0» - переполнения нет.

5 бит: SSPEN: бит включения модуля MSSP: «1» - модуль MSSP включен, выводы SCK, SDO, SDI, -SS (RC3, RC5, RC4,RA5 соответственно) подключены к модулю MSSP, «0» - модуль выключен, перечисленные выводы работают как цифровые входы/выходы.

4 бит: CKP: бит выбора полярности тактового сигнала:(только для ведомого режима, для ведущего не используется) «1» - тактовый сигнал не управляется, «0» - тактовый сигнал удерживается в низком логическом уровне (используется для подготовки данных).

3 – 0 биты: SSPM3: SSPM0: режимы работы модуля MSSP:

SSPM3:SSPM0

0110 - ведомый режим, 7-ми разрядная адресация,

0111 - ведомый режим, 10-ми разрядная адресация,

1000 – ведущий режим, тактовый сигнал = Fosc/(4*(SSPADD +1),

1011 - программная поддержка ведущего режима ( ведомый режим выключен),

1110 – программная поддержка ведущего режима, 7-ми разрядная адресация с

разрешением прерываний по приему бит START и STOP,

1111 – программная поддержка ведущего режима, 10-ти разрядная адресация с

разрешением прерываний по приему бит START и STOP.

Таблица 27 ( для регистра SSPCON2).

Номер разряда

7

6

5

4

3

2

1

0

Обозн. разряда

GCEN

ACRSTAT

ACKDT

ACKEN

RCEN

PEN

RSEN

SEN

где:

7 бит: GCEN: бит разрешения поддержки общего вызова (только для ведомого режима): «1» - разрешить прерывания при приеме в регистр SSPSR адреса общего вызова (0000h),

«0» - поддержка общего вызова выключена.

6 бит: ASCSTAT: бит статуса подтверждения (только для ведущего режима). Подрежим передачи: «1» - подтверждения от ведомого не получено, «0» - подтверждение от ведомого получено.

5 бит: ACKDT: бит подтверждения (только для ведущего режима). Подрежим приема ведущим: «1» есть подтверждение, «0» - нет подтверждения.

4 бит: ACKEN: формирование бита подтверждения (только для ведущего режима). «1» - на выводах SCL, SDA – формируется бит ACKDT, «0» - подтверждение не формируется.

3 бит: RCEN: Разрешение приема данных (только для ведущего режима): «1» - разрешить прием данных с шины I2C, «0» - приемник ведущего выключен.

2 бит: PEN: формирование бита STOP (только для ведущего режима), «1» - на выводах SCL, SDA – формируется бит STOP, «0» - бит STOP не формируется.

1 бит: RSEN: формирование бита повторный START (только для ведущего режима): «1» на выводах SCL, SDA формируется бит повторный START, «0» - бит повторный START не формируется.

0 бит: SEN: формирование бита START (только для ведущего режима): «1» - на выводах SCL, SDA формируется бит START, «0» - бит START не формируется.

Как было сказано выше, в сетевой структуре микроконтроллеров есть два вида: ведомые и ведущие, каждый из которых может принимать и передавать информацию. Рассмотрим каждый вид в отдельности.