Use a diode to limit the range to 0V..+4V. Use the pulseIn() function to measure the duration of either the HIGH or LOW side of the square wave in microseconds. Multiply by 2 to get the full duration. Divide into 1,000,000 to get pulses per second.
If the wave isn't actually 'square' (equal duration HIGH and LOW) measure both with two calls to pulseIn() and add the values together.